提取峰值

郁闷了好几天,怎样求峰值呢,
昨天回去的路上才子说:可以用三个点。
晕,突然想到啦,这么弱智的问题居然困扰了我好久。
下面是求峰值的代码,可能有点乱。
求出峰值,下面的步骤就比较简单啦。


a = imread( ' c:oat.png');   % 读入图像
figure,imshow(a);  %显示图像
b
= a(:);
k
= size(b);
%  下述操作可以实现像素的显示
c
= linspace( 0 , 0 , 256 );
for  i = 1 :k
    
for  j = 1 : 256
        
if (b(i) == j)
            c(j)
= c(j) + 1 ;
        
end
    
end
end
%  以下步骤简单实现读取整个图像的峰值点

max
= c( 1 );
maxi
= 0 ;
for  i = 1 : 256
    
if (c(i) > max)
        max
= c(i);
        maxi
= i;
    
end
end
max
maxi




%  下面步骤实现对各个峰值的读取
d
= c;  %作为临时操作数组,以不破坏原数组
emax
= linspace( 0 , 0 , 256 );
emaxi
= linspace( 0 , 0 , 256 );
a
= 1 ;
for  j = 2 : 256
        
if (d(j) > d(j - 1 & d(j) > d(j + 1 ))
            emax(a)
= d(j);
            emaxi(a)
= j;
            d(j)
= d(j - 1 );
            a
= a + 1 ;   %开始没有想明白,用额外的循环变量
        
end
end


%  下面的程序读取四个高峰值,并进行显示
fmax
= linspace( 0 , 0 , 4 );
fmaxi
= linspace( 0 , 0 , 4 );
b
= 1 ;
for  i = 1 : 4
    fmax(b)
= emax( 1 );
    
for  j = 2 : 256
        
if (emax(j) > fmax(b))
            fmax(b)
= emax(j);
            fmaxi(b)
= emaxi(j);
            t
= j;
        
end
    
end
    emax(t)
= 0 ;
    b
= b + 1 ;
end


for  i = 1 : 4
    fmax(i)
    fmaxi(i)
end




 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值