b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

图像分割c_图像特征点提取_图像预处理(2)

电脑杂谈  发布时间:2017-02-05 17:34:27  来源:网络整理

图像边缘提取的常用梯度算子有Robert算子、Sobel算子、PRewitt算子、Krisch算子等。下面以边缘检测Sobel算子为例来讲述数字图像处理中边缘检测的实现:

对于数字图像,可以用一阶差分代替一阶微分;

△xf(x,y)=f(x,y)-f(x-1,y);

△yf(x,y)=f(x,y)-f(x,y-1);

求梯度时对于平方和运算及开方运算,可以用两个分量的绝对值之和表示,即:

Sobel梯度算子是先做成加权平均,再微分,然后求梯度,即:

△xf(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);

△yf(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);

G[f(x,y)]=△xf(x,y)+△yf(x,y);

F(x-1,y-1) F(x,y-1) F(x+1,y-1) F(x-1,y) F(x,y) F(x+1,y) F(x-1,y+1) F(x,y+1) F(x+1,y+1)

我在视图类中定义了响应菜单命令的边缘检测Sobel算子实现灰度图像边缘检测的函数(图像数据的获取可以参见我在天极网上发表的的相关文章):

void CDibView::OnMENUSobel()

{

CClientDC pDC(this);

HDC hDC=pDC.GetSafeHdc();//获取当前设备上下文的句柄;

SetStretchBltMode(hDC,COLORONCOLOR);

HANDLE data1handle;

LPDIBHDRTMAPINFOHEADER lpDIBHdr;

CDibDoc *pDoc=GetDocument();

HDIB hdib;

unsigned char *lpDIBBits;

unsigned char *data;

hdib=pDoc->m_hDIB;//得到图象数据;

lpDIBHdr=(LPDIBHDRTMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);

lpDIBBits= lpDIBHdr +* (LPDWord)lpDIBHdr + 256*sizeof(RGBQUAD);

//得到指向位图像素值的指针;

data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpDIBHdr->biWidth*8)*lpDIBHdr->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)*(lpDIBBits+(i+1)*WIDTHBYTES(lpDIBHdr->biWidth*8)+(j-1))


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30721-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 张燕飞
      张燕飞

      听说大多都是在威海卫港区里被人家炸成的

    • 张起
      张起

      高营养高蛋白

    热点图片
    拼命载入中...