《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 數字圖片處理算法
數字圖片處理算法
2015年微型機與應用第20期
王命全,張祖蓮,時現偉,李景林
新疆氣象局 新疆興農網信息中心,新疆 烏魯木齊 830002
摘要: 數字圖片在人們生活中越來越普遍,隨時隨地拍照即可,已經成為人們生活中很重要的一部分,同時對圖片處理的需求也越來越多。如何更好地處理圖片,已經成為更多相關研究的重點。總結了一些常見的圖片處理算法及相關圖片處理軟件,方便大家借鑒及應用。
Abstract:
Key words :

  摘  要: 數字圖片在人們生活中越來越普遍,隨時隨地拍照即可,已經成為人們生活中很重要的一部分,同時對圖片處理的需求也越來越多。如何更好地處理圖片,已經成為更多相關研究的重點。總結了一些常見的圖片處理算法及相關圖片處理軟件,方便大家借鑒及應用。

  關鍵詞數字圖像圖像處理信息傳輸;圖像處理算法

0 引言

  隨著電子產品的快速進步,數字圖片在人們生活中越來越普遍,隨時隨地可以拍照,圖片處理的需求越來越普遍,不管用手機還是電腦,已經成為人們生活很重要的一部分。

  目前圖片處理軟件特別多,各式各樣的,受不同用戶喜歡的。對于一般用戶,網絡上的圖片處理軟件夠用了。對于特殊用戶,想對圖片的精細度要求更高的相關研究人員,或需要其他特殊處理等,網絡上的處理軟件是遠遠不夠用的。這需要相關開發人員對不同人員的要求進行單獨處理。

1 相關研究及圖像處理軟件

  參考文獻[1]介紹了制作縮略圖、圖片加水印、顯示隨機圖像的過程實現,但沒有具體實現過程和圖片顯示效果。參考文獻[2]中分析了基于最不顯著特征位替代(LSB)算法基本原理,并且對加密處理進行改進,加入輸入像素預測和邊界剩余信息分析壓縮,通過VC+和編譯平臺實現過程。參考文獻[3]主要研究如何將數字圖像轉換成色值矩陣的算法。

  圖像處理軟件是用于處理圖像信息的各種應用軟件的總稱,專業的圖像處理軟件有Adobe的Photoshop系列;基于應用的處理管理、處理軟件Picasa等,還有國內很實用的大眾型軟件彩影,非主流軟件有美圖秀秀,動態圖片處理軟件有Ulead GIF Animator、gif movie gear等。

  以上都是現有軟件,功能固定,每一點的效果也是程序事先編程好的,如何做到隨心處理,精確到每一點像素,通過功能內部處理圖片的變化呢?

  本文總結以下幾個圖片處理算法實例,詳細說明對同一幅圖片進行不同處理是如何變化其RGB值的。圖片點的處理精確到每一個點的RGB,對圖片處理要求達到精細。圖片不同的顯示效果可以根據自己的需求來調整。

  本文主要使用C#語言,對圖片的不同效果進行處理,使用的方法和調用的技術手段都不一樣。

2 本文算法

  下面是對某一圖片的初始定義:

  圖片寬度:int Pheight;獲取圖片寬度:int pwidth;圖片矩形:Rectangle rect;

  初始化Bitmap對象:Bitmap mybmp;內存像素處理:BitmapData bmpdata;

  (1)底片效果相關核心算法

  算法的主要原理就是先獲得每一點的像素值,然后再用255取反顏色值重新賦值到對應的點。

  if(curbmp==null){return;}

  unsafe{int offset=bmpdata.Stride-pwidth*3;

  byte*bptr=(byte*)(bmpdata.Scan0);

  for(intx=0;x<pwidth;x++)

  {for(inty=0;y<Pheight;y++)

  {  bptr[0]=(byte)(255-bptr[0]);bptr[1]=(byte)(255-bptr[1]);

  bptr[2]=(byte)(255-bptr[2]);bptr+=3;}bptr+=offset;}//用255取反

  curbmp.UnlockBits(bmpdata);}

  this.effectPicbox.Image=curbmp;

  (2)浮雕效果相關核心算法

  此算法的原理主要是獲得每一個像素的RGB值,再減去相鄰像素的RGB值,然后加128得到新的RGB值賦值給原像素點。主要核心算法如下:

  IntPtr ptr=mydata.Scan0;int pixels=Pwidth*Pheight*3;

  byte[]rgbValues=new byte[pixels];Marshal.Copy(ptr,rgbValues,0,pixels);

  int r=0,g=0,b=0;

  for(int i=0;i<pixels-6;i+=3)

  {r=Math.Abs(rgbValues[i+5]-rgbValues[i+2]+128);

  //相鄰像素R的值

  g=Math.Abs(rgbValues[i+4]-rgbValues[i+1]+128);

  b=Math.Abs(rgbValues[i+3]-rgbValues[i]+128);

  if(r>255)r=255;if(r<0)r=0;if(g>255)g=255;if(g<0)g=0;

  if(b>255)b=255;if(b<0)b=0;

  rgbValues[i]=(byte)b;rgbValues[i+1]=(byte)g;rgbValues[i+2]=(byte)r;}

  Marshal.Copy(rgbValues,0,ptr,pixels);mybmp.UnlockBits(mydata);

  this.effectPicbox.Image=mybmp;

  (3)黑白效果相關核心算法

  將彩色數字圖片處理成黑白效果通常有3種算法:

  ①最大值法:將每一個像素點的R、G、B中3個值等于其中的最大值。

  ②平均值法:將每一個像素點的R、G、B值等于原3個R、G、B值的平均值。

  ③加權平均值法:對每一個像素點的R、G、B值進行加權。

  本文主要采用第3種加權平均值的算法主要的算法原理如下:首先獲取每一點的RGB值,分別對每一個像素RGB賦不同的權值,賦給臨時變量,然后獲得的臨時變量得到的值賦給原像素的RGB值,且RGB 3個值是相同的。

  IntPtr ptr=mydata.Scan0;int bytes=pwidth*Pheight*3;byte[]rgbValues=new byte[bytes];

  Marshal.Copy(ptr,rgbValues,0,bytes);byte temp=0;

  for(int i=0;i<bytes-3;i+=3)

  {temp=(byte)(rgbValues[i+2]*.58+rgbValues[i+1]*.22+rgbValues[i]*0.1);

  rgbValues[i]=rgbValues[i+1]=rgbValues[i+2]=temp;}

  //賦值

  Marshal.Copy(rgbValues,0,ptr,bytes);mybmp.UnlockBits(mydata);

  this.effectPicbox.Image=mybmp;}

  catch(System.ArgumentException e){MessageBox.Show(e.ToString());}

  (4)柔化效果相關核心算法

  原理:利用高斯模板,將其每個像素點進行平滑處理,當前像素顏色值差距較大的像素和周圍像素取平均值來進行平滑處理,整個圖片變得很柔和。

  int offset=bmpdata.Stride-pwidth*3;

  unsafe{byte*ptr=(byte*)bmpdata.Scan0;//地址指針

  int[]Gauss={1,2,1,2,4,2,1,2,1};//高斯模板

  try{ptr+=bmpdata.Stride+3;

  for(inti=1;i<pwidth-1;i++)

  {for(intj=1;j<Pheight-1;j++)

  {int r=0,g=0,b=0;int index=0;

  for(int col=-1;col<=1;col++)

  {for(int row=-1;row<=1;row++)

  {byte*temp=ptr;temp=ptr+bmpdata.Stride*row+col*3;

  r+=temp[2]*Gauss[index];g+=temp[1]*Gauss[index];b+=temp[0]*Gauss[index];

  index++;}}

  r/=16;g/=16;b/=16;if(r>255)r=255;if(r<0)r=0;if(g>255)g=255;

  if(g<0)g=0;if(b>255)b=255;//邊緣值的處理

  if(b<0)b=0;

  (ptr-bmpdata.Stride-3)[2]=(byte)r;(ptr-bmpdata.Stride-3)[1]=(byte)g;

  (ptr-bmpdata.Stride-3)[0]=(byte)b;ptr+=3;}ptr+=offset;}}

  catch(System.Exception e){MessageBox.Show(e.ToString());}}

  mybmp.UnlockBits(bmpdata);this.effectPicbox.Image=mybmp;

  (5)銳化效果相關核心算法

  該算法的原理與上面的柔和主要核心代碼差不多,但主要處理點不一樣,此算法主要是利用拉普拉斯模版,突出顏色值比較大的像素點。核心代碼不同處如下:

  int[]Laplacian={-1,-1,-1,-1,9,-1,-1,-1,-1};

  //拉普拉斯模板

  r+=temp[2]*Laplacian[index];g+=temp[1]*Laplacian[index];b+=temp[0]*Laplacian[index];index++;}}

3 實驗結果

  圖1~圖6為實驗效果圖。

Image 007.png

  通過上面圖片的效果可以看出,本文算法是真實有效的、可實施的。

4 結論

  本文將常見的圖片效果及相應的算法顯示出來,通過相應的算法及實驗結果可證明算法是可實施的。

  現實中圖片處理算法遠不止這些,這里不再一一列舉,本文列舉一些常見圖片處理算法的處理,供大家借鑒使用。其他圖片處理算法主要原理也是在圖片像素點上處理著手,可根據自己的想法,將圖片處理成更多效果。

  圖片處理多種多樣,視覺效果要求也千差萬別,隨著網絡的發展將不斷優化算法使其更加合理地應用。

參考文獻

  [1] 王濤.ASP動態網頁圖片的處理[J].佳木斯大學學報(自然科學版),2005,23(2):229-232.

  [2] 余靜,馬博.基于LSB圖像水印加密技術改進及實現[J].煤炭技術,2010,29(2):180-182.

  [3] 張祖蓮,王命全,李景林.基于圖像色值轉換算法[J].微型機與應用,2014,33(14):36-37.

  [4] 王命全,張祖蓮,李景林.防Web攻擊的登錄窗口程序設計[J].微型機與應用,2014,33(5):5-7.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看福利一区| 欧美一区二区三区视频| 国产视频一区三区| 欧美午夜宅男影院在线观看| 欧美电影免费观看| 美女在线一区二区| 老色鬼精品视频在线观看播放| 欧美影片第一页| 午夜亚洲影视| 先锋影音国产一区| 欧美一级艳片视频免费观看| 亚洲自拍偷拍麻豆| 亚洲综合社区| 欧美一级欧美一级在线播放| 欧美一级免费视频| 久久激情久久| 欧美影院在线| 欧美专区在线观看| 亚洲第一精品福利| 亚洲第一页在线| 亚洲第一页在线| 亚洲人成网站影音先锋播放| 亚洲免费激情| 亚洲一区影音先锋| 欧美怡红院视频| 久久久久看片| 免费中文字幕日韩欧美| 欧美劲爆第一页| 欧美日韩一区二区免费视频| 国产精品播放| 国产日本精品| 玉米视频成人免费看| 亚洲黄色性网站| 一本色道久久88综合日韩精品| 国产精品99久久久久久宅男| 亚洲免费一区二区| 久久福利视频导航| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲成人在线视频播放| 亚洲国产精品v| aⅴ色国产欧美| 亚洲欧美日韩一区二区在线| 久久99伊人| 亚洲美女中出| 亚洲欧美制服另类日韩| 久久久午夜视频| 欧美精品在线视频| 国产精品mm| 国产一区二区观看| 亚洲激情一区| 亚洲免费在线看| 亚洲国产成人久久| 亚洲天堂黄色| 久久亚洲精品视频| 欧美日韩免费观看一区三区 | 国产精品日韩专区| 樱桃国产成人精品视频| 亚洲精品色图| 羞羞色国产精品| 99re这里只有精品6| 欧美一区二视频在线免费观看| 鲁大师成人一区二区三区| 欧美日韩另类字幕中文| 国产欧美一区二区三区另类精品| 伊人久久亚洲美女图片| 一区二区三区回区在观看免费视频| 亚洲欧美中日韩| 99re在线精品| 久久婷婷综合激情| 国产精品国产三级国产a| 在线观看欧美| 先锋影院在线亚洲| 一区二区三区国产精品| 久久久久成人网| 久久亚洲精品一区| 欧美精品国产精品日韩精品| 国产欧美日韩三区| 亚洲美女淫视频| 亚洲国产mv| 欧美主播一区二区三区| 欧美日韩在线亚洲一区蜜芽| 一区二区三区在线视频播放 | 午夜亚洲影视| 在线一区二区视频| 麻豆成人av| 国产手机视频精品| 一本色道久久综合亚洲精品不| 亚洲福利国产精品| 欧美在线日韩| 国产精品嫩草99av在线| 亚洲美女av网站| 亚洲理论在线| 老**午夜毛片一区二区三区| 国产欧美日韩另类视频免费观看| 99国产精品99久久久久久粉嫩| 亚洲国产精品一区制服丝袜| 亚洲欧美日韩精品综合在线观看| 欧美日韩国内| 亚洲国产小视频| 亚洲国产日韩一区| 欧美一区成人| 国产精品一区二区黑丝| 夜夜狂射影院欧美极品| 一本色道久久综合亚洲精品不 | 欧美日韩国产首页| 亚洲高清资源| 亚洲国产美国国产综合一区二区| 久久激情视频| 国产亚洲一区二区三区在线播放| 亚洲在线免费| 午夜在线精品| 国产精品久久精品日日| 一区二区三区免费看| 一区二区三区欧美视频| 欧美激情日韩| 亚洲精品乱码久久久久久黑人| 亚洲激情欧美激情| 免费在线欧美黄色| 亚洲国产精品123| 亚洲美女一区| 欧美久久久久免费| av不卡免费看| 亚洲一区999| 国产精品老牛| 亚洲欧美另类国产| 久久国产精品99久久久久久老狼| 国产日韩欧美麻豆| 久久本道综合色狠狠五月| 久久久久久亚洲精品中文字幕 | 国产欧美精品一区| 新狼窝色av性久久久久久| 欧美一区亚洲| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲第一成人在线| 免费不卡亚洲欧美| 亚洲人成人一区二区三区| 日韩一区二区精品在线观看| 欧美日韩一区在线| 亚洲午夜一二三区视频| 欧美在线综合视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲人成网站精品片在线观看| 欧美激情精品久久久久久黑人| 亚洲精品国产精品久久清纯直播| 一本色道88久久加勒比精品| 欧美性猛交xxxx免费看久久久 | 欧美激情一级片一区二区| 99成人免费视频| 欧美一级二区| 狠狠爱综合网| 夜夜爽av福利精品导航| 国产精品裸体一区二区三区| 亚洲欧洲av一区二区| 久久一区中文字幕| 亚洲精品网址在线观看| 亚洲伊人观看| 黄色精品网站| 夜夜嗨av色综合久久久综合网| 国产精品国产三级国产aⅴ入口| 亚洲免费中文| 欧美成人免费全部| 亚洲五月婷婷| 麻豆精品一区二区综合av| 亚洲靠逼com| 欧美在线亚洲| 亚洲黄一区二区三区| 午夜精品久久久久久久久久久| 国产亚洲欧美日韩精品| 亚洲美女黄色| 国产欧美日韩免费看aⅴ视频| 亚洲经典自拍| 国产精品毛片一区二区三区| 久久国产加勒比精品无码| 欧美日韩国产在线| 欧美永久精品| 欧美三级日本三级少妇99| 欧美一级夜夜爽| 欧美日韩黄色大片| 久久精品国产清自在天天线| 欧美日韩一区二区三区在线观看免| 午夜精品一区二区三区在线视 | 国产自产v一区二区三区c| 艳妇臀荡乳欲伦亚洲一区| 国产视频亚洲精品| 中文在线资源观看网站视频免费不卡| 国产日韩一区二区| 一区二区三区欧美亚洲| 黑人巨大精品欧美一区二区| 亚洲欧美日韩成人| 亚洲国内自拍| 久久久久久欧美| 亚洲一区制服诱惑| 欧美日韩成人在线视频| 欧美在线999| 国产精品v片在线观看不卡| 亚洲国产精品免费| 国产日韩欧美在线视频观看| 亚洲一区二区在线播放| 亚洲国产成人久久| 久久久夜夜夜|