基于多维度参数计算的matlab模型图像辨识

1.图像预处理

1.1将原始图像进行灰度和二值处理;

figure,subplot(1,3,1),imshow(I),title('原始图像');
subplot(1,3,2),imshow(I2),title('灰度图像');
subplot(1,3,3),imshow(BW),title('二值图像');

1.2检测边缘腐蚀运算

SE=strel('rectangle',[40 30]);  % 结构定义
J2=imopen(BW,SE);            % 开启运算
figure,imshow(J2),title('对二值图像进行开运算后的结果图像');

SE=strel('square',5); % 定义3×3腐蚀结构元素
J=imerode(~J2,SE);
BW2=(~J2)-J;        % 检测边缘
figure,imshow(BW2),title('3*3腐蚀运算后的图像边界轮廓');

1.3提取边界图像

B = imfill(BW2,'holes');
B = bwmorph(B,'remove');
figure,imshow(B),title('提取出的边界图像');

2.多维度参数计算

2.1周长计算

    for i = 1 : num
        Premeter(i) = 0;
    end

    [row,col] = size(Label);
    for i = 1 : row
        for j = 1 : col
            if(Label(i,j) > 0)
                Premeter(Label(i,j)) = Premeter(Label(i,j)) + 1;    %计算标记后的各块图形边界中像素的个数的总数
            end
        end
    end

(2.2、2.3、2.4程序相似)
2.2 面积计算

2.3圆度计算

2.4色度计算

3.分类器识别

3.1图像1识别

A=0;

for i=1:num
    if(MeanHue(i)>0.5)    %分类器识别桃的准则:判断各个图形中平均色度值大于0.5的为A
        A=i;
    end
end
%8-2对分出来的类别分别构建相应的图像掩膜,并用对原图的亮度图像进行掩膜操作
AHSV=HSV;
[row,col] = size(FilledLabel);   %统计填充后的图形中各块图形所含像素的个数的多少
%MeanHue = zeros(1,num);
        for j = 1 : row
            for k = 1 : col
                if(FilledLabel(j,k) ~=pitch)
                       %AHSV(j,k,2)=0;
                       AHSV(j,k,3)=0;
                end
            end
        end
%8-3变换生成最终的结果图像,图像中显示的结果即对应分类器中指定的类别
Amatrix = hsv2rgb(AHSV);   %转换为RGB彩图,彩图中已经滤去了其余A
figure,imshow(pitchmatrix),title('图像为:A');

3.2 图像2识别 %(与1类似)

4.以水果为例进行测试

测试结果:

            

                                            

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值