青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Visual C++實現數字圖像增強處理(下)

2.圖像平滑

  圖像平滑主要是為了消除噪聲。噪聲并不限于人眼所能看的見的失真和變形,有些噪聲只有在進行圖像處理時才可以發現。圖像的常見噪聲主要有加性噪聲、乘性噪聲和量化噪聲等。圖像中的噪聲往往和信號交織在一起,尤其是乘性噪聲,如果平滑不當,就會使圖像本身的細節如邊界輪廓、線條等變的模糊不清,如何既平滑掉噪聲有盡量保持圖像細節,是圖像平滑主要研究的任務。

  一般來說,圖像的能量主要集中在其低頻部分,噪聲所在的頻段主要在高頻段,同時系統中所要提取的汽車邊緣信息也主要集中在其高頻部分,因此,如何去掉高頻干擾又同時保持邊緣信息,是我們研究的內容。為了去除噪聲,有必要對圖像進行平滑,可以采用低通濾波的方法去除高頻干擾。圖像平滑包括空域法和頻域法兩大類,在空域法中,圖像平滑的常用方法是采用均值濾波或中值濾波,對于均值濾波,它是用一個有奇數點的滑動窗口在圖像上滑動,將窗口中心點對應的圖像像素點的灰度值用窗口內的各個點的灰度值的平均值代替,如果滑動窗口規定了在取均值過程中窗口各個像素點所占的權重,也就是各個像素點的系數,這時候就稱為加權均值濾波;對于中值濾波,對應的像素點的灰度值用窗口內的中間值代替。實現均值或中值濾波時,為了簡便編程工作,可以定義一個n*n的模板數組。另外,讀者需要注意一點,在用窗口掃描圖像過程中,對于圖像的四個邊緣的像素點,可以不處理;也可以用灰度值為"0"的像素點擴展圖像的邊緣。下面給出了采用加權均值濾波的圖像平滑函數代碼和效果圖:

void CDibView::OnImagePh()
{
 CClientDC pDC(this);
 HDC hDC=pDC.GetSafeHdc();//獲取當前設備上下文的句柄;
 SetStretchBltMode(hDC,COLORONCOLOR);
 HANDLE data1handle;
 LPBITMAPINFOHEADER lpBi;
 CDibDoc *pDoc=GetDocument();
 HDIB hdib;
 unsigned char *hData;
 unsigned char *data;
 hdib=pDoc->GetHDIB();
 BeginWaitCursor();
 lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);
 hData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
 pDoc->SetModifiedFlag(TRUE);
 data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);
 data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);
 AfxGetApp()->BeginWaitCursor();
 int i,j,s,t,ms=1;
 int sum=0,sumw=0;
 int mask[3][3]=,,};//定義的3x3加權平滑模板;
 for(i=0; ibiHeight; i++)
 for(j=0; jbiWidth; j++)
 {
  sumw=0; sum=0;
  for(s=(-ms); s<=ms; s++)
  for(t=(-ms); t<=ms; t++)     if(((i+s)>=0)&&((j+t)>=0)&&((i+s)biHeight)&&((j+t)biWidth))
 {
  sumw += mask[1+s][1+t];   
  sum+=*(hData+(i+s)*WIDTHBYTES(lpBi->biWidth*8)+(j+t))*mask[1+s][1+t];
  }
  if(sumw==0) sumw=1;
   sum/=sumw;
  if(sum>255)sum=255;
  if(sum<0)sum=0;
  *(data+i*WIDTHBYTES(lpBi->biWidth*8)+j)=sum;
 }
 for( j=0; jbiHeight; j++)
 for(i=0;ibiWidth;i++)  *(hData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);
  StretchDIBits (hDC,0,0,lpBi->biWidth,lpBi->biHeight,0,0,
         lpBi->biWidth,lpBi->biHeight,
         hData,(LPBITMAPINFO)lpBi,
         DIB_RGB_COLORS,
         SRCCOPY);//顯示圖像;
}

Visual C++實現數字圖像增強處理(下)(圖一)

(a)LENA原圖
Visual C++實現數字圖像增強處理(下)(圖二)

(b)平滑后的效果圖

                     圖三

  中值或均值平滑有時處理圖像的效果并不是很好,它雖然去除了一定的噪聲,但同時使圖像中的邊緣變的模糊,這主要和所選取的窗口大小有關,為此下面介紹了一種既能保持邊緣清晰又能消除噪聲的方法,其算法如圖四所示:
Visual C++實現數字圖像增強處理(下)(圖三)

(a)
Visual C++實現數字圖像增強處理(下)(圖四)

(b)
Visual C++實現數字圖像增強處理(下)(圖五)

(c)

                 圖 四 圖像平滑模板

  上圖的含義是在圖像中取5*5的區域,包含點(i,j)的五邊形和六邊形各四個,3*3的區域一個,計算這九個區域的標準差和灰度的平均值,取標準差最小區域的灰度平均值作為點(i,j)的灰度。由于該算法的實現代碼和上述代碼大同小異,所以代碼部分就不再贅述。

 3.圖像銳化

  圖像平滑往往使圖像中的邊界、輪廓變的模糊,為了減少這類不利效果的影響,這就需要利用圖像鋭化技術,使圖像的邊緣變的清晰。圖像銳化處理的目的是為了使圖像的邊緣、輪廓線以及圖像的細節變的清晰,經過平滑的圖像變得模糊的根本原因是因為圖像受到了平均或積分運算,因此可以對其進行逆運算(如微分運算)就可以使圖像變的清晰。從頻率域來考慮,圖像模糊的實質是因為其高頻分量被衰減,因此可以用高通濾波器來使圖像清晰。

  為了要把圖像中間任何方向伸展的的邊緣和輪廓線變得清晰,我們希望對圖像的某種運算是各向同性的。可以證明偏導平方和的運算是各向同性的,既:

Visual C++實現數字圖像增強處理(下)(圖六)

  式中( Visual C++實現數字圖像增強處理(下)(圖七))是圖像旋轉前的坐標,(Visual C++實現數字圖像增強處理(下)(圖八) )是圖像旋轉后的坐標。梯度運算就是在這個式子的基礎上開方得到的。圖像(x,y)點的梯度值:
Visual C++實現數字圖像增強處理(下)(圖九)

  為了突出物體的邊緣,常常采用梯度值的改進算法,將圖像各個點的梯度值與某一閾值作比較,如果大于閾值,該像素點的灰度用梯度值表示,否則用一個固定的灰度值表示。

  我們在對圖像增強的過程中,采用的是一種簡單的高頻濾波增強方法:

Visual C++實現數字圖像增強處理(下)(圖十)

  式中f,g分別為銳化前后的圖像, Visual C++實現數字圖像增強處理(下)(圖十)是與擴散效應有關的系數。 Visual C++實現數字圖像增強處理(下)(圖十二)表示對圖像f進行二次微分的拉普拉斯算子。這表明不模糊的圖像可以由模糊的圖像減去乘上系數的模糊圖像拉普拉斯算子來得到。 Visual C++實現數字圖像增強處理(下)(圖十三)可以用下面的模板H=,,}來近似。在具體實現時,上述模板H中的各個系數可以改變, Visual C++實現數字圖像增強處理(下)(圖十四)這個系數的選擇也很重要,太大了會使圖像的輪廓過沖,太小了則圖像銳化不明顯。實驗表明, Visual C++實現數字圖像增強處理(下)(圖十四)選取2-8之間往往可以達到比較滿意的效果。下面給出 Visual C++實現數字圖像增強處理(下)(圖十四)等于4的情況下的實現代碼和效果圖:

void CDibView::OnMenuitem32785()
{
CClientDC pDC(this);
HDC hDC=pDC.GetSafeHdc();//獲取當前設備上下文的句柄;
SetStretchBltMode(hDC,COLORONCOLOR);
CDibDoc *pDoc=GetDocument();
HDIB hdib;
hdib=pDoc->GetHDIB();
BITMAPINFOHEADER *lpDIBHdr;//位圖信息頭結構指針;
BYTE *lpDIBBits;//指向位圖像素灰度值的指針;
lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);//得到圖像的位圖頭信息 lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);//獲取圖像像素值
BYTE* pData1;
static int a[3][3]=,,};//拉普拉斯算子模板;
int m,n,i,j,sum;
int Width=lpDIBHdr->biWidth;
int Height=lpDIBHdr->biHeight;
pData1=(BYTE*)new char[WIDTHBYTES(Width*8)*Height];
file://進行拉普拉斯濾波運算;
for(i=1;i for(j=1;j {
sum=0;
for(m=-1;m<2;m++)
for(n=-1;n<2;n++) sum+=*(lpDIBBits+WIDTHBYTES(Width*8)*(i+m)+j+n)*a[1+m][1+n];
if(sum<0) sum=0;
if(sum>255) sum=255;
*(pData1+WIDTHBYTES(Width*8)*i+j)=sum;
}
file://原始圖像pData減去拉普拉斯濾波處理后的圖像pData1
for(i=0;i for(j=0;j { sum=(int)(*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)-4*(*(pData1+WIDTHBYTES(Width*8)*i+j)));
if(sum<0) sum=0;
if(sum>255) sum=255;
*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)=sum;
}
StretchDIBits (hDC,0,0,lpDIBHdr->biWidth,lpDIBHdr->biHeight,0,0,
lpDIBHdr->biWidth,lpDIBHdr->biHeight,
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,
DIB_RGB_COLORS,
SRCCOPY);
}

Visual C++實現數字圖像增強處理(下)(圖一)

(a)LENA原圖
Visual C++實現數字圖像增強處理(下)(圖十五)
(b)拉普拉斯銳化圖

                    圖 五

  本文主要講解了圖像直方圖的基本概念和圖像點處理運算中的增強、平滑、銳化概念和實現算法,并給處理實現代碼和處理效果圖和廣大讀者朋友們交流,希望達到拋磚引玉的作用。

posted on 2008-09-10 19:22 wrh 閱讀(836) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久亚洲综合| 久久激情五月婷婷| 国产日韩久久| 久久综合九色欧美综合狠狠| 亚洲第一精品在线| 亚洲日本在线视频观看| 久久九九热re6这里有精品| 国产九九精品| 午夜精品久久久| 久久先锋影音| 亚洲欧美日韩国产综合在线| 美女黄毛**国产精品啪啪 | 国产精品久久久久久久久久ktv| 在线一区二区三区四区| 久久蜜桃精品| 欧美在线视频观看免费网站| 美女尤物久久精品| 在线视频成人| 亚洲视频电影图片偷拍一区| 国内精品久久久久久影视8| 亚洲国产乱码最新视频| 欧美视频一区在线| 亚洲日本免费| 亚洲全部视频| 国产模特精品视频久久久久| 欧美成人精品| 国产欧美日韩免费| 亚洲视频一区在线| 一区二区三区不卡视频在线观看 | 亚洲午夜精品视频| 欧美日韩国产色综合一二三四| 亚洲人成网站在线播| 亚洲日韩欧美视频一区| 久久久久国产成人精品亚洲午夜| 欧美诱惑福利视频| 一区免费观看| 亚洲第一网站| 午夜亚洲福利在线老司机| 亚洲免费观看高清完整版在线观看熊| 久久久青草青青国产亚洲免观| 你懂的国产精品永久在线| 欧美一级二区| 一区二区三区在线免费视频| 欧美激情在线狂野欧美精品| 久久综合999| 免费欧美在线视频| 久久精品视频亚洲| 亚洲人成网站在线观看播放| 免费av成人在线| 99热精品在线观看| 蜜桃av一区二区在线观看| 精品成人一区| 欧美丝袜一区二区三区| 欧美成人日本| 欧美成人国产| 久久久久免费| 性欧美1819性猛交| 一区二区三区精品久久久| 欧美第一黄网免费网站| 久久夜色精品国产亚洲aⅴ| 日韩小视频在线观看| 欧美一区在线视频| 亚洲天堂视频在线观看| 亚洲精品裸体| 在线视频欧美日韩精品| 亚洲人成在线免费观看| 国产日韩欧美综合精品| 欧美日韩伦理在线| 久久午夜av| 久久久久青草大香线综合精品| 欧美一级免费视频| 亚洲在线成人| 欧美在线你懂的| 久久精品在线观看| 嫩草影视亚洲| 欧美人交a欧美精品| 欧美亚洲在线视频| 久久精品官网| 国产亚洲欧洲一区高清在线观看| 欧美视频精品在线| 国产欧美精品日韩区二区麻豆天美 | 亚洲欧美中文字幕| 欧美一区二区视频97| 亚洲资源av| 久久久久久久久久久久久9999| 狂野欧美激情性xxxx| 欧美国产精品久久| 一区二区三区四区国产| 香蕉av福利精品导航| 欧美高清视频免费观看| 国产精品主播| 国产精品99久久99久久久二8| 亚洲欧美日韩国产中文在线| 久久国产视频网| 一本色道久久88精品综合| 久久超碰97人人做人人爱| 欧美激情视频网站| 狠狠入ady亚洲精品| 亚洲小说欧美另类婷婷| 久久综合色一综合色88| 亚洲自拍偷拍色片视频| 欧美国产日韩在线观看| 亚洲电影免费| 蜜臀a∨国产成人精品| 香蕉久久精品日日躁夜夜躁| 欧美日韩国产一级片| 亚洲精品色图| 亚洲福利一区| 欧美激情成人在线视频| 最新国产成人在线观看| 久久亚洲国产精品一区二区| 午夜精品短视频| 国产手机视频一区二区| 欧美日本韩国在线| 亚洲国产精品一区制服丝袜| 国产精品视频自拍| 亚洲午夜在线视频| 一区二区三区久久精品| 国产精品扒开腿爽爽爽视频| 亚洲一区二区三区四区五区午夜| 亚洲破处大片| 国产精品久久久99| 午夜精品一区二区三区在线播放| 亚洲欧美日韩国产一区| 国产最新精品精品你懂的| 免费看精品久久片| 女仆av观看一区| 亚洲一区二区在线播放| 亚洲欧美国产不卡| 亚洲高清影视| 亚洲伦理在线观看| 韩国一区电影| 亚洲精一区二区三区| 国产日韩精品一区| 亚洲福利精品| 国产性做久久久久久| 亚洲国产清纯| 国产女人18毛片水18精品| 欧美福利专区| 国产一区二区丝袜高跟鞋图片| 亚洲电影有码| 国产综合精品| 亚洲欧美乱综合| 亚洲一区二区三区在线视频| 欧美一级成年大片在线观看| 一本久道综合久久精品| 久久久国产精品一区| 久久gogo国模啪啪人体图| 欧美日韩一区二区三区视频 | 亚洲午夜伦理| 免费成人高清视频| 欧美日韩另类字幕中文| 欧美激情中文字幕在线| 亚洲国产精品va在线观看黑人| 久久国产黑丝| 美女在线一区二区| 亚洲第一在线综合网站| 欧美一区二区三区的| 久久久久久欧美| 国产午夜精品久久久久久久| 亚洲精品一区二区三区不| 欧美影院在线| 久久精品在线观看| 在线不卡亚洲| 欧美国产精品| 夜夜嗨av色综合久久久综合网| 一区二区国产精品| 国产精品亚洲一区二区三区在线| 亚洲欧美经典视频| 欧美国产在线视频| 亚洲一区二区三区激情| 国产精品视频免费一区| 久久av一区二区三区漫画| 欧美成人有码| 欧美在线国产精品| 亚洲国产mv| 国产欧美在线视频| 欧美成人精品h版在线观看| 亚洲一区成人| 亚洲精品永久免费| 欧美成人精品1314www| 亚洲一区二区三区中文字幕在线| 国产亚洲精品久久久久动| 欧美国产日韩一区二区| 欧美一级在线视频| 日韩一级二级三级| 欧美福利电影网| 久久综合久色欧美综合狠狠| 亚洲——在线| 亚洲午夜国产成人av电影男同| 在线观看日韩av先锋影音电影院| 欧美午夜精品久久久| 欧美激情在线免费观看| 美女图片一区二区| 久久精品日产第一区二区| 亚洲欧美中文在线视频| 亚洲专区一区二区三区| 亚洲一区免费网站| 午夜精品久久久久久久蜜桃app | 国产日韩精品视频一区二区三区|