999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Sobel算子的圖像邊緣檢測及其實現

2008-12-31 00:00:00孫洪淋廖繼旺
電腦知識與技術 2008年15期

摘要:Sobel算子是圖像邊緣檢測中常用的方法之一,利用像素的左、右、上、下鄰域的灰度加權算法,根據在邊緣點處達到極值這一原理進行邊緣檢測。該方法不但產生較好的檢測效果,而且對噪聲具有平滑作用,可以提供較為精確的邊緣方向信息。本文提供了利用Sobel算子實現灰度圖像邊緣檢測的C++源程序。

關鍵詞:邊緣檢測;Sobel算子;梯度;噪聲

中圖分類號:TP183文獻標識碼:A文章編號:1009-3044(2008)15-20ppp-0c

Image Fringe Detection and Realization Based on Sobel Operator

SUN Hong-lin,LIAO Ji-wang

(Hunan Information College, Changsha 410200,China)

Abstract: Sobel operator is one of common Image fringe detection techniques, using image element's left and right, top and bottom neighborhood field's ash degree weighting algorithm, basing on the principle of reaching extremum at the fringe dot, we carry through fringe detection. The technique not only produces preferable detection effect, but also has the flatness effect on yawp and can offer exact fringe direction imformation. This paper offers C++ source program which realizes ash degree image fringe detection using Sobel operator

Key words: fringe detection; Sobel operator; grads; yawp

1 引言

邊緣是圖像最基本的特征。所謂邊緣是指圖像周圍像素灰度有階躍變化或屋頂狀變化的像素的集合,它存在于目標與背景、目標與目標、區域與區域、基元與基元之間。邊緣具有方向和幅度兩個特征,沿邊緣走向,像素值變化比較平緩;垂直于邊緣走向,像素值變化比較劇烈,可能呈現階躍狀,也可能呈現斜坡狀因此,邊緣可以分為兩種:一種為階躍性邊緣,它兩邊的像素灰度值有著明顯的不同;另一種為屋頂狀邊緣,它位于灰度值從增加到減少的變化轉折點。對于階躍性邊緣,二階方向導數在邊緣處呈零交叉;而對于屋頂狀邊緣,二階方向導數在邊緣處取極值。

邊緣檢測技術是圖像處理和計算機視覺等領域最基本的技術,如何快速、精確的提取圖像邊緣信息一直是國內外研究的熱點,然而邊緣檢測又是圖像處理中的一個難題。經典的邊緣檢測方法是對原始圖像中像素的某小鄰域來構造邊緣檢測算子。常用的邊緣檢測方法有Roberts算子、Sobel算子、Prewitt算子、Kirsch算子、LOG算子等。

2 Sobel算子特點分析

Sobel算子在求梯度之前,首先進行鄰域平均或加權平均,然后進行微分,就能抑制噪聲。Sobel 邊緣檢測算子使用兩個如下有向算子(一個水平的,一個是垂直的),每一個逼近一個偏導數:

△xf(x,y)

={f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)}-{f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)}

△yf(x,y)

={f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)}-{f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)}

如果用Sobel算子檢測圖像M的邊緣的話,可以先分別用水平算子和垂直算子對圖像進行卷積,得到的是兩個矩陣,在不考慮邊界的情形下也是和原圖像同樣大小的圖像M1,M2,他們分別表示圖像M中相同位置處的兩個偏導數。然后把M1,M2對應位置的兩個數平方后相加得到一個新的矩陣G,G表示M中各個像素的灰度的梯度值(一個逼近)。這樣就可以通過閾值處理得到邊緣圖像。

Sobel 算子利用像素的左、右、上、下鄰域的灰度加權算法,根據在邊緣點處達到極值這一原理進行邊緣檢測。該方法不但產生較好的檢測效果,而且對噪聲具有平滑作用,可以提供較為精確的邊緣方向信息。

3 Sobel算子實現灰度圖像邊緣檢測的函數源程序

void CDibView::OnMENUSobel()

{ HANDLE data1handle;

LPBITMAPINFOHEADER lpBi;

CDibDoc *pDoc=GetDocument();

HDIB hdib;

unsigned char *hData;

unsigned char *data;

hdib=pDoc->m_hDIB;

BeginWaitCursor();

lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);

hData= lpbi +* (LPDWORD)lpbi + 256*sizeof(RGBQUAD);

//得到指向位圖像素值的指針

pDoc->SetModifiedFlag(TRUE);//設修改標志為\"TRUE\"

data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);

//申請存放處理后的像素值的緩沖區

data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);

AfxGetApp()->BeginWaitCursor();

int i,j,buf,buf1,buf2;

for( j=0; jbiHeight; j++)//以下循環求(x,y)位置的灰度值

for( i=0; ibiWidth; i++)

{

if(((i-1)>=0)((i+1)biWidth)((j-1)>=0)((j+1)biHeight))

{//對于圖像四周邊界處的向素點不處理

buf1=(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))

+2*(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j))

+(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));

buf1=buf1-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))

-2*(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j))

-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));

//x方向加權微分

buf2=(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1))

+2*(int)(int)*(hData+(i)*WIDTHBYTES(lpBi->biWidth*8)+(j+1))

+(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));

buf2=buf2-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))

-2*(int)(int)*(hData+(i)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))

-(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1));

//y方向加權微分

buf=abs(buf1)+abs(buf2);//求梯度

if(buf>255) buf=255;

if(buf<0){buf=0;

*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;

}

else *(data+i*lpBi->biWidth+j)=(BYTE)0;

}

for( j=0; jbiHeight; j++)

for( i=0; ibiWidth; i++)

*(hData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);

//處理后的數據寫回原緩沖區

AfxGetApp()->EndWaitCursor();

GlobalUnlock((HGLOBAL)hdib);

GlobalUnlock(data1handle);

GlobalFree(date1handle);

EndWaitCursor();

Invalidate(TRUE);

}

4 實驗結果及討論

該圖像處理程序在Windows2000環境下編譯通過,圖1給出了對常用的Lena圖像依據圖像處理算法得到的圖像二值化、高通濾波、Sobel邊緣算子的處理結果,(c)圖是在進行Sobel算子處理后,又對它進行了二值化處理得到的。

從(b)可以看出,Soble 算子對噪聲有抑制作用,因此不會出現很多孤立的邊緣像素點;但Sobel算子對邊緣的定位不是很準確,圖像的邊界寬度往往不止一個像素。

參考文獻:

[1] 章毓晉.圖象工程[M].北京:清華大學出版社,1999.

[2] Health A., Sarkar S., Sanocki T., et al..Comparison of Edge Detectors: A Methodology and InitialStudy[J]. Computer Vision and Image Understanding,1998,69(1):38-54.

[3] 刑軍.基于Sobel算子數字圖像的邊緣檢測[J].微機發展,2005,15(9):48-52.

[4] 劉彩.一種改進的Sobel圖像邊緣檢測算法[J].貴州工業大學學報(自然科學版),2004,33(5):77-79.

收稿日期:2008-03-18

基金項目:湖南省教育廳資助科研項目(06D69)

作者簡介:孫洪淋(1971-),女,碩士,湖南信息職業技術學院講師,研究方向:智能控制、機器人視覺伺服控制。

主站蜘蛛池模板: 蜜臀AV在线播放| 亚洲日韩AV无码一区二区三区人| 在线播放精品一区二区啪视频| 天天操天天噜| 久久精品国产在热久久2019 | 色综合久久无码网| 狂欢视频在线观看不卡| 亚洲熟妇AV日韩熟妇在线| 粉嫩国产白浆在线观看| 国产亚洲精久久久久久久91| 久久99精品国产麻豆宅宅| 精品中文字幕一区在线| 国内精品自在欧美一区| 手机在线免费毛片| 欧美不卡视频在线观看| 天天色综网| 毛片视频网| 中文字幕无码av专区久久| 久久黄色毛片| 欧美精品1区2区| 中文字幕在线日本| 浮力影院国产第一页| 欧美有码在线观看| 色婷婷亚洲综合五月| 亚洲综合日韩精品| 国产精品不卡永久免费| 久久五月天国产自| 国产一在线观看| 熟女日韩精品2区| 九九视频在线免费观看| 国产视频欧美| 精品自窥自偷在线看| 天天爽免费视频| 香蕉精品在线| 国产sm重味一区二区三区| 狂欢视频在线观看不卡| 婷婷99视频精品全部在线观看 | 免费人成视网站在线不卡| 9丨情侣偷在线精品国产| 免费又黄又爽又猛大片午夜| 国产精品hd在线播放| 91蝌蚪视频在线观看| 麻豆精品视频在线原创| 一级毛片在线播放免费| 国产96在线 | 性视频一区| 重口调教一区二区视频| 91精品久久久无码中文字幕vr| 欧美一区二区三区香蕉视| 噜噜噜久久| 免费观看亚洲人成网站| 在线观看国产黄色| 99精品视频在线观看免费播放| 国产www网站| 欧美一区福利| 国产亚洲欧美在线中文bt天堂| 福利在线一区| 无码国产伊人| 国产美女叼嘿视频免费看| 内射人妻无码色AV天堂| 一区二区理伦视频| 国产激情无码一区二区APP| 激情六月丁香婷婷| 中文字幕亚洲精品2页| 欧美翘臀一区二区三区| 99精品国产高清一区二区| 四虎国产成人免费观看| 欧美午夜理伦三级在线观看| 黄色一级视频欧美| 亚洲天堂首页| 久久黄色影院| 再看日本中文字幕在线观看| 自偷自拍三级全三级视频 | 国产精品观看视频免费完整版| 色噜噜在线观看| 亚洲国产精品人久久电影| 亚洲美女操| 九九热在线视频| 精品三级在线| 热思思久久免费视频| a亚洲视频| 欧美色综合久久|