好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Ruby實現的圖片濾鏡算法代碼

Ruby實現的圖片濾鏡算法代碼

熱門標簽:北京語音電銷機器人價格 買了外呼系統不想用了怎么辦 樂昌電話機器人 武漢呼叫中心外呼系統線路商 真人語音電銷機器人系統 電話機器人電話卡封號怎么辦 開封百應電銷機器人聯系方式 邯鄲外呼調研線路 浦東上海400開頭的電話申請

原圖


一、灰度算法

彩色照片每一個像素的顏色值由紅、綠、藍三種值混合而成,紅綠藍的取值分別由很多種,于是像素的顏色值也可以有很多種顏色值,這就是彩色圖片的原理,而灰度照片則只有256種顏色,一般的處理方法是將圖片顏色值的RGB三個通道值設為一樣,這樣圖片的顯示效果就會是灰色。

灰度處理一般有三種算法:

  1. 最大值法:即新的顏色值R=G=B=Max(R,G,B),這種方法處理后的圖片看起來亮度值偏高。
  2. 平均值法:即新的顏色值R=G=B=(R+G+B)/3,這樣處理的圖片十分柔和
  3. 加權平均值法:即新的顏色值R=G=B=(R * Wr+G*Wg+B*Wb),一般由于人眼對不同顏色的敏感度不一樣,所以三種顏色值的權重不一樣,一般來說綠色最高,紅色其次,藍色最低,最合理的取值分別為Wr = 30%,Wg = 59%,Wb = 11%

下面是加權平均值法的Ruby實現:

 #灰度化圖片
 #取RGB三色平均值
 def self.grey(bmp)
  for i in 0 .. bmp.height - 1
   for j in 0 .. bmp.width - 1
    rgb = bmp.getRGB(i, j)
    grey = rgb.r.to_f * 0.3+rgb.g.to_f *0.59 +rgb.b.to_f * 0.11.to_i
    bmp.setRGB(i, j, RGB.new(grey, grey, grey))
   end
  end
 end

灰度效果:


二、二值化

圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果。所有灰度大于或等于閾值的像素被判定為屬于特定物體,其灰度值為255表示,否則這些像素點被排除在物體區域以外,灰度值為0,表示背景或者例外的物體區域。

圖像二值化常常用于破解驗證碼等圖片識別應用上

#二值化圖片
 #小于一定閾值設為0 0 0,大于設置為255 255 255
 def self.binarization(bmp)
  imageGreyLevel = bmp.getGreyLevel
  for i in 0 .. bmp.height - 1
   for j in 0 .. bmp.width - 1
    rgb = bmp.getRGB(i, j)
    if rgb.getGreyLevelimageGreyLevel
     bmp.setRGB(i, j, RGB.new(0, 0, 0))
    else
     bmp.setRGB(i, j, RGB.new(255, 255, 255))
    end
   end

  end
 end

二值化效果


 三、底片

底片效果的實現很簡單,就是將RGB的每一個通道值取反,就是用255去減

#底片化圖片
 #RGB取反色255-
 def self.contraryColor(bmp)
  for i in 0 .. bmp.height - 1
   for j in 0 .. bmp.width - 1
    rgb = bmp.getRGB(i, j)
    bmp.setRGB(i, j, rgb.getContrary)
   end
  end
 end

底片效果


四、浮雕效果

浮雕的算法相對復雜一些,用當前點的RGB值減去相鄰點的RGB值并加上128作為新的RGB值。由于圖片中相鄰點的顏色值是比較接近的,因此這樣的算法處理之后,只有顏色的邊沿區域,也就是相鄰顏色差異較大的部分的結果才會比較明顯,而其他平滑區域則值都接近128左右,也就是灰色,這樣
就具有了浮雕效果。

在實際的效果中,這樣處理后,有些區域可能還是會有”彩色”的一些點或者條狀痕跡,所以最好再對新的RGB值做一個灰度處理。

#浮雕效果
 #浮雕的算法相對復雜一些,用當前點的RGB值減去相鄰點的RGB值并加上128作為新的RGB值。由于圖片中相鄰點的顏色值是比較接近的,
 #因此這樣的算法 處理之后,只有顏色的邊沿區域,也就是相鄰顏色差異較大的部分的結果才會比較明顯,而其他平滑區域則值都接近128左右,
 #也就是灰色,這樣就具有了浮雕效果。
 #在實際的效果中,這樣處理后,有些區域可能還是會有”彩色”的一些點或者條狀痕跡,所以最好再對新的RGB值做一個灰度處理。
 def self.emboss(bmp)

  preRGB=RGB.new(128, 128, 128)

  for i in 0 .. bmp.height - 1
   for j in 0 .. bmp.width - 1
    currentRGB=bmp.getRGB(i, j)
    r=(currentRGB.r-preRGB.r)*1+128
    g=(currentRGB.g - preRGB.g)*1+128
    b=(currentRGB.b-preRGB.b)*1+128

    bmp.setRGB(i, j, RGB.new(r,g,b).getGreyRGB)
    preRGB = currentRGB
   end
  end

 end

浮雕效果


項目主頁

geekeren/RubyImageProcess

您可能感興趣的文章:
  • Ruby實現的各種排序算法
  • ruby實現的插入排序和冒泡排序算法
  • Ruby實現的矩陣連乘算法
  • Ruby實現二分搜索(二分查找)算法的簡單示例
  • Ruby實現的3種快速排序算法
  • Ruby實現的合并排序算法
  • Ruby實現的最優二叉查找樹算法

標簽:鄂州 淄博 六安 河北 自貢 松原 石嘴山 宜春

巨人網絡通訊聲明:本文標題《Ruby實現的圖片濾鏡算法代碼》,本文關鍵詞  Ruby,實現,的,圖片,濾鏡,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby實現的圖片濾鏡算法代碼》相關的同類信息!
  • 本頁收集關于Ruby實現的圖片濾鏡算法代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: juliaann大战黑人| 一本色道久久HEZYO无码| 揉我胸?啊?嗯出水了描述| 给少妇按摩| 久久精品视频8| 性饥渴寡妇肉乱免费看浅草| 美女插插视频| 真实的国产乱xxxx在线播放| 欧美日韩国产va另类试看| 情瘾(出轨,高H)小说| 逼出水视频| 夜妖娆在线直播| 强?女警察陈玉莹系列h| 午夜剧场三级| 久久午夜精品2区| 老师好紧?开裆蕾丝| 亚洲精品国偷自产久色| 扒开腿挺进肉蒂高潮呻吟 | 男生互摸同学勃起故事| 日本xxxx电影| 日韩床戏在线观看免费完整版| 韩国美女大胸三级| 古装午夜理伦三级播放| 撕开她的乳罩慢慢揉捏吻视频| 天天夜天干天天爽| 色之综合天天综合色天天棕色| 另类小说五月色综合小说| 极品虎白女在线观看一线天| 国产学生不戴套在线看| 成人性生交大片免费卡看| 一级a一级a爰片免费免会永久 | 激情婷婷五月狠狠色综AV| 牝性ペルソナ| 承欢高h+1v1| 97吻| y0UjiZZZXXX日本人| 91精品手机国产在线能| 久久综合狠狠综合久久97色| 免费吃奶摸下激烈视频在线观看| 亚洲热影院| 国内永久第一免费福利视频|