特征提取 边缘直方图 matlab,关于边缘直方图的算法实现

originailimage=imread(‘图像名’);

image_I=rgb2gray(originailimage);

%            [image_x,image_y]=size(image_I);

%           if image_x

%               image_I=image_I';

end

figure(1),subplot(121),title('灰度图'),

imshow(image_I);

% 找到边缘

I=image_I;

image_bw=edge(I,'canny');

subplot(122),title('边界检测图')

imshow(image_bw);

[L,NUM]=bwlabeln(image_bw,8); % 连通性

%~~~~~~~将图像边缘量化为101份(1-100 101) 画出边缘直方图,量化份数因情况不同而定

num_line=zeros(1,101);

for i=1:NUM

number=length(find(L==i));

for j=1:100

if number==j

num_line(j)=num_line(j)+1;

end

end

if number>100

num_line(101)=num_line(101)+1;

end

end

EH_1=[];

for i=1:101

EH_1=[EH_1 num_line(i)];

end

x1=1:101;

y1=EH_1;

figure(2),title('plot曲线直方图'),

plot(x1,y1);

%~~~~亦可将图像量化为13份(1-10 11 12 13)画出bar投影图像

num=zeros(1,13);

for i=1:NUM

number=length(find(L==i));

for j=1:10

if number==j

num(j)=num(j)+1;

end

end

if number>10 & number<=20

num(11)=num(11)+1;

end

if number>20 & number<=100

num(12)=num(12)+1;

end

if number>100

num(13)=num(13)+1;

end

end

EH=[];

for i=1:13

EH=[EH num(i)];

end

x=1:13;

y=EH;

figure(3),title('bar投影直方图'),

bar(x,y);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值