24小时热门版块排行榜    

Znn3bq.jpeg
查看: 985  |  回复: 0

xiashaoyan

新虫 (正式写手)

[求助] cany算子在局部非极大值抑制的计算过程的问题!!

在cany算子中局部非极大值抑制的计算过程中,要进行对插值,计算的程序如下:
(程序来源于http://blog.csdn.net/xiajun07061225/article/details/6926108

%局部非极大值抑制  
K = d;%记录进行非极大值抑制后的梯度  
%设置图像边缘为不可能的边缘点  
for j = 1:width  
    K(1,j) = 0;  
end  
for j = 1:width  
    K(height,j) = 0;  
end  
for i = 2:width - 1  
    K(i,1) = 0;  
end  
for i = 2:width - 1  
    K(i,width) = 0;  
end  
  
for i = 2:height - 1  
    for j = 2:width - 1  
        %当前像素点的梯度值为0,则一定不是边缘点  
        if d(i,j) == 0  
            K(i,j) = 0;  
        else  
            gradX = dx(i,j);%当前点x方向导数  
            gradY = dy(i,j);%当前点y方向导数  
            gradTemp = d(i,j);%当前点梯度  
            %如果Y方向幅度值较大  
            if abs(gradY) > abs(gradX)  
                weight = abs(gradX) / abs(gradY);%权重  
                grad2 = d(i - 1,j);  
                grad4 = d(i + 1,j);  
                %如果x、y方向导数符号相同  
                %像素点位置关系  
                %g1 g2  
                %   C  
                %   g4 g3  
                if gradX * gradY > 0  
                    grad1 = d(i - 1,j - 1);  
                    grad3 = d(i + 1,j + 1);  
                else  
                    %如果x、y方向导数符号反  
                    %像素点位置关系  
                    %   g2 g1  
                    %   C  
                    %g3 g4  
                    grad1 = d(i - 1,j + 1);  
                    grad3 = d(i + 1,j - 1);  
                end  
            %如果X方向幅度值较大  
            else  
                weight = abs(gradY) / abs(gradX);%权重  
                grad2 = d(i,j - 1);  
                grad4 = d(i,j + 1);  
                %如果x、y方向导数符号相同  
                %像素点位置关系  
                %g3  
                %g4 C g2  
                %     g1  
                if gradX * gradY > 0  
                    grad1 = d(i + 1,j + 1);  
                    grad3 = d(i - 1,j - 1);  
                else  
                    %如果x、y方向导数符号反  
                    %像素点位置关系  
                    %     g1  
                    %g4 C g2  
                    %g3  
                    grad1 = d(i - 1,j + 1);  
                    grad3 = d(i + 1,j - 1);  
                end  
            end  
            %利用grad1-grad4对梯度进行插值  
            gradTemp1 = weight * grad1 + (1 - weight) * grad2;  
            gradTemp2 = weight * grad3 + (1 - weight) * grad4;  
            %当前像素的梯度是局部的最大值,可能是边缘点  
            if gradTemp >= gradTemp1 && gradTemp >= gradTemp2  
                K(i,j) = gradTemp;  
            else  
                %不可能是边缘点  
                K(i,j) = 0;  
            end  
        end  
    end  
end  
我捉摸了一下午,感觉考虑两个条件,abs(dy)与abs(dx)的大小,以及dy与dx乘积的符号,感觉理解的不是很透彻,于是我画了个图,如见下:局部非极大值抑制 .jpg
画完了我就困惑了,因为图中第3个图,g1,g2不在一条直线上,怎么插值呢?所以想是不是我认为的x,y轴相反了呢?还是我画的梯度方向本身就不对呢?我查了一下,x,y轴在图像中的方向的确像我这样画的,但是我看了一个帖子http://bbs.csdn.net/topics/370004267中给了一个图,见图2,帖子里面说gx*gy>0是因为图像坐标系中y轴是朝下的,我就更加困惑了,这个帖子里面定义x,y轴方向与一般图像处理教材的方向恰好颠倒了,后来我也试了x,y轴颠倒过来,画了四种类似于上面第一个图局部非极大值抑制 .jpg,但是还是出现,g1,g2不在同一条直线上,接着我仔细看那程序,发现,考虑,abs(gradY) > abs(gradX) 与abs(gradX) > abs(gradY) 情况下,在考虑相同的gradX * gradY > 0下,grad1 与grad1 恰好颠倒过来,但是如果这样,g1,g2是没法再同一条直线上  ,所以感觉很困惑,求助各位研究算法和图像处理的前辈们!!!

cany算子在局部非极大值抑制的计算过程的问题!!
局部非极大值抑制  .jpg


cany算子在局部非极大值抑制的计算过程的问题!!-1
2.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiashaoyan 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 299求调剂 +8 ZVVZ13 2026-04-08 8/400 2026-04-12 00:40 by 蓝云思雨
[考研] 332求调剂 +14 蕉蕉123 2026-04-10 14/700 2026-04-12 00:27 by 蓝云思雨
[考研] 本人女孩 +7 吼吼, 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano——
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 调剂 +19 小张ZA 2026-04-10 20/1000 2026-04-10 22:08 by 猪会飞
[考研] 309求调剂 +14 wdhw 2026-04-10 15/750 2026-04-10 21:06 by zhouxiaoyu
[考研] 284求调剂 +9 让我上岸吧阿西 2026-04-09 11/550 2026-04-10 19:18 by 靖jing
[考研] 298求调剂 +13 钉叮咚冬瓜 2026-04-09 13/650 2026-04-10 15:49 by jiajinhpu
[考研] 调剂 +24 不逢春 2026-04-07 25/1250 2026-04-10 09:39 by 690616278
[考研] 生物与医药调剂 +5 十七sa 2026-04-05 5/250 2026-04-10 08:14 by kangsm
[考研] 08600生物与医药-327 +10 18755400796 2026-04-05 10/500 2026-04-10 08:14 by kangsm
[考研] 考研调剂 +13 冰冰,,, 2026-04-07 13/650 2026-04-09 17:01 by Lilly_Li
[考研] 298求调剂 +4 manman511 2026-04-05 4/200 2026-04-08 16:50 by tjzhao
[考研] 一志愿哈工大,初试329,求环境科学与工程调剂! +11 余未辛 2026-04-06 11/550 2026-04-08 15:21 by screening
[考研] 326分,一志愿沪9,求生物学调剂 +4 刘墨墨 2026-04-05 4/200 2026-04-08 06:22 by lijunpoly
[考研] 计算机11408 287 求调剂 +3 LiLe5 2026-04-07 3/150 2026-04-07 23:15 by shanqishi
[考研] 机械调剂 +3 zzzbcb 2026-04-07 3/150 2026-04-07 22:19 by hemengdong
[考研] 0854求调剂 +9 亨氏番茄沙司 2026-04-06 10/500 2026-04-07 14:37 by shdgaomin
[考研] 081200-11408-367学硕求调剂 +4 1_2_3111 2026-04-06 4/200 2026-04-07 08:13 by jp9609
[考研] 304求调剂 +4 luoye0105 2026-04-05 4/200 2026-04-06 21:05 by 木子君1218
信息提示
请填处理意见