【树叶识别】基于matlab图像处理的树叶种类识别【源码100期】

一、简介

基于matlab图像处理的树叶种类识别

二、部分源码

close all
clear all
clc
tic
f=imread('test.tif');%读入测试图
A=double(f);%把灰度值转化为双精度
g=mat2gray(A);%灰度值归一化0到1之间
k=im2bw(g,0.4);%二值化,阈值0.4
imshow(k);
k=1-k;%反转
se=strel('disk',6);
fc=imclose(k,se);%闭运算
fc=imfill(fc,'hole');%填洞

figure,imshow(fc);
se=strel('disk',8);
fco=imopen(fc,se);%开运算
figure,imshow(fco);

BW=fco;
trainset=train(); 
trainset2=train2();%训练样本
imshow(f,[]);
[L,num] = bwlabel(BW); %标记
for t=1:num
    [r c]=find(L==t);
    r1=min(r);
    c1=min(c);
    r2=max(r);
    c2=max(c);
    IM{t}=BW(r1:r2,c1:c2);

%          figure;imshow(BW(r1:r2,c1:c2))
    phi=invmoments(IM{t});  %提取不变矩特征
    Pset{t}=phi; 
    d(t)=norm(abs(log(Pset{t}(1:7)))-abs(log(trainset(1:7)))); %与训练样本进行匹配
d2(t)=norm(abs(log(Pset{t}(1:7)))-abs(log(trainset2(1:7))));
  

if d(t)<10
   text((c2+c1)/2,(r2+r1)/2,'黄连木叶','BackgroundColor','red'); %显示结果
end
if d2(t)<10
   text((c2+c1)/2,(r2+r1)/2,'朴树叶','BackgroundColor','green'); %显示结果
end
if Pset{t}(3:7)<0.00001
   text((c2+c1)/2,(r2+r1)/2,'腊梅叶','BackgroundColor','yellow'); %显示结果
end
end
toc

三、运行结果

四、matlab版本

MATLAB R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值