24小时热门版块排行榜    

查看: 977  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286分人工智能专业请求调剂愿意跨考! +4 lemonzzn 2026-03-17 8/400 2026-03-21 22:49 by lemonzzn
[考研] 广西大学材料导师推荐 +3 夏夏夏小正 2026-03-17 5/250 2026-03-21 22:20 by 金昊ML
[考研] 311求调剂 +3 勇敢的小吴 2026-03-20 3/150 2026-03-21 17:40 by ColorlessPI
[考研] 265求调剂 +12 梁梁校校 2026-03-19 14/700 2026-03-21 13:38 by lature00
[考研] 机械专硕299求调剂至材料 +3 kkcoco25 2026-03-16 4/200 2026-03-21 03:52 by JourneyLucky
[考研] 华东师范大学-071000生物学-293分-求调剂 +3 研究生何瑶明 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[考研] 一志愿南昌大学,327分,材料与化工085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[考研] 求调剂,一志愿:南京航空航天大学大学 ,080500材料科学与工程学硕,总分289分 +4 @taotao 2026-03-19 4/200 2026-03-20 22:14 by JourneyLucky
[考研] 350求调剂 +5 weudhdk 2026-03-19 5/250 2026-03-20 22:04 by luoyongfeng
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 材料学硕297已过四六级求调剂推荐 +11 adaie 2026-03-19 11/550 2026-03-20 21:30 by laoshidan
[考研] 260求调剂 +3 朱芷琳 2026-03-20 3/150 2026-03-20 20:35 by 学员8dgXkO
[考研] 086500 325 求调剂 +3 领带小熊 2026-03-19 3/150 2026-03-20 18:38 by 尽舜尧1
[考研] 工科材料085601 279求调剂 +7 困于星晨 2026-03-17 9/450 2026-03-20 17:38 by 无懈可击111
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 材料专硕306英一数二 +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[考研] 326求调剂 +5 上岸的小葡 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[硕博家园] 湖北工业大学 生命科学与健康学院-课题组招收2026级食品/生物方向硕士 +3 1喜春8 2026-03-17 5/250 2026-03-17 17:18 by ber川cool子
[考研] 机械专硕325,寻找调剂院校 +3 y9999 2026-03-15 5/250 2026-03-16 19:58 by y9999
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
信息提示
请填处理意见