Matlab图像处理——谷物颗粒计数

本文介绍了一种利用Matlab图像识别技术改进谷物计数的方法,通过灰度化、噪声去除、中心区域选择和二值化处理,实现了自动化的谷物颗粒计数,提高了精度和效率,为精细农业提供了技术支持。
摘要由CSDN通过智能技术生成

针对目前谷物人工计数和光电计数方法存在的不足 , 提出了一种基于 Matlab 图像识别和处理技术的谷物计数方法 , 并用实例验证了其可靠性。该方法减轻了操作者劳动强度 , 弥补了人视觉的不足之处 , 提高了效率及准确率 , 为今后进一步研究奠定了必要的理论与实践基础 , 对完善“精细农业 ”具有重要意义 。

1.图像的灰度化处理

通过双循环对图像进行灰度化处理。通过对彩色通道的加权求和,将彩色图像转换为灰度图像

2.去除噪声处理

通过均值滤波去除图像中的噪声,提高后续处理的准确性

3.裁剪中心区域和直方图分析

对图像进行裁剪,选择中心区域,然后显示该区域和其直方图,

4.二值化

通过迭代法确定一个阈值,实现图像的二值化处理

5.谷物颗粒计数的实现

通过连通性分析计算谷物颗粒的数量

二值化后的图像像素只有 0 和 1 两个值 ,分别表示背景和目标。由于一个谷物颗粒的图像像素是连续的 ,在二值图像中表现为连通性 , 因此可以利用计算连通图的数量来求出谷物颗粒数量。在 M atlab 中利用 bw label函数求出连通图 ,并给出连通图的数量。

源代码:

clear
clc
Img=imread('1.jpg');%读彩色图像
figure
imshow(Img);title('原图像')%显示原始图像

[n m a]=size(Img);%判断图像的大小
Img_Gray=zeros(n,m);
for x=1:n%通过双循环对图像进行灰度化处理
    for y=1:m
        Img_Gray(x,y)=0.3*Img(x,y,1)+0.59*Img(x,y,2)+0.11*Img(x,y,3);%实现灰度化
    end
end
J=filter2(fspecial('average',3),uint8(Img_Gray))/255; %去除噪声
figure
imshow(J);title('去除噪声的图像')  %显示去除噪声图像

[e1,e2]=size(J);
Im=imcrop(J,[e2/2-200,e1/2-200,400,400]);

figure
imhist(Im)
title('中心区域直方图');
[xa,ya]=size(Im);
b=double(Im);
zd=double(max(Im)) ;
zx=double(min(Im)) ;
T=double((zd+zx))/2;
count=double(0);
while 1
    count=count+1;
    S0=0.0; n0=0.0;
    S1=0.0; n1=0.0;
    for i=1:xa
        for j=1:ya
            if double(Im(i,j))>=T
                S1=S1+double(Im(i,j));
                n1=n1+1;
            else
                S0=S0+double(Im(i,j));
                n0=n0+1;
            end
        end
    end
    T0=S0/n0;
    T1=S1/n1;
    if abs(T-((T0+T1)/2))<0.1
        break;
    else
        T=(T0+T1)/2;
    end
end
K=find(J<T);
J(K)=0;
K=find(J>=T);
J(K)=255;
figure
imshow(J),title(' 图像二值化 ');%显示二值化图像
[I,n]=bwlabel(J,4);%通过连通性,计算谷物的颗粒数
disp(['数量=' num2str(n)])

 

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

5a8015ddde1e41418a38e958eb12ecbd.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MatpyMaster

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

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

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

打赏作者

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

抵扣说明:

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

余额充值