canny算子边缘检测_canny算子非极大值抑制_robert算子(4)

电脑杂谈  发布时间:2017-03-13 22:00:53  来源:网络整理

3 计算梯度值和方向,图像灰度值的梯度一般使用一阶有限差分来进行近似,这样就可以得图像在x和y方向上偏导数的两个矩阵。本文采用非常简单的算子,当然你也可以选择高大上的算子或者自己写的:

其中f为图像灰度值,P代表X方向梯度幅值,Q代表Y方向 梯度幅值,M是该点幅值,Θ是梯度方向,也就是角度。

代码如下:

  1 //////////////////////////////////////////////////////////
 2 ////////第三步:计算梯度值和方向 
 3 //////////////////同样可以用不同的检测器////////////////加上把图像放到0-255之间//////  
 4 /////    P[i,j]=(S[i+1,j]-S[i,j]+S[i+1,j+1]-S[i,j+1])/2     /////  
 5 /////    Q[i,j]=(S[i,j]-S[i,j+1]+S[i+1,j]-S[i+1,j+1])/2     /////  
 6 ///////////////////////////////////////////////////////////////// 
 7    double *P=new double[nWidth*nHeight];
 8    double *Q=new double[nWidth*nHeight];
 9    int *M=new int[nWidth*nHeight];
10    //IplImage * M;//梯度结果
11    //M=cvCreateImage(cvGetSize(ColorImage),ColorImage->depth,1);
12    double *Theta=new double[nWidth*nHeight];
13    int nwidthstep=pCanny->widthStep;
14    for(int iw=0;iw<nWidth-1;iw++)
15    {
16        for (int jh=0;jh<nHeight-1;jh++)
17        {
18            P[jh*nWidth+iw]=(double)(pCanny->imageData[min(iw+1,nWidth-1)+jh*nwidthstep]-pCanny->imageData[iw+jh*nwidthstep]+
19            pCanny->imageData[min(iw+1,nWidth-1)+min(jh+1,nHeight-1)*nwidthstep]-pCanny->imageData[iw+min(jh+1,nHeight-1)*nwidthstep])/2;
20            Q[jh*nWidth+iw]=(double)(pCanny->imageData[iw+jh*nwidthstep]-pCanny->imageData[iw+min(jh+1,nHeight-1)*nwidthstep]+
21            pCanny->imageData[min(iw+1,nWidth-1)+jh*nwidthstep]-pCanny->imageData[min(iw+1,nWidth-1)+min(jh+1,nHeight-1)*nwidthstep])/2;
22         }
23     }
24 //计算幅值和方向
25     for(int iw=0;iw<nWidth-1;iw++)
26     {
27         for (int jh=0;jh<nHeight-1;jh++)
28         {
29            M[jh*nWidth+iw]=(int)sqrt(P[jh*nWidth+iw]*P[jh*nWidth+iw]+Q[jh*nWidth+iw]*Q[jh*nWidth+iw]+0.5);
30            Theta[jh*nWidth+iw]=atan2(Q[jh*nWidth+iw],P[jh*nWidth+iw])*180/3.1415;
31            if (Theta[jh*nWidth+iw]<0)
32            {
33                Theta[jh*nWidth+iw]=360+Theta[jh*nWidth+iw];
34            }
35         }
36     }

View Code


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

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

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