种子数量统计,四种方法,(面积、周长、数据处理1、数据处理2)

该博客介绍了两种基于图像处理的方法来统计种子的数量。首先,通过计算种子图像的面积,去除连通区域并估算单个种子的平均面积,进而得到种子总数。其次,利用Canny边缘检测和骨架提取计算种子的周长,同样通过平均周长估算种子个数。尽管这些方法精度有限,但为种子计数提供了一种实用途径。
摘要由CSDN通过智能技术生成

利用图像处理的额方法统计种子的个数
根据种子的特点,可以用的方法有:面积,周长。还有基于这两种方法的其他方案。
1、利用面积计算

clear all;close all;clc;
img=imread('种子.png');
figure;imshow(img);
img_R=img(:,:,1);%取红色通道分量分析
%%%基于面积做统计个数,计算整个二值图中的全部白色像素的个数,除以单个种子所占据的面积,即可得到大概个数
%%单个种子的面积可根据二值图中不是连连在一起的区域估算
figure;imhist(img_R);%观察直方图发现像素集中在20-150左右,取50-90计算面积,这里可以随意取,只要在范围内
img_R_bw=img_R<90&img_R>50;%根据直方图选取灰度值在50-90的区域进行面积计算
figure;imshow(img_R_bw);
img_R_bw_open=bwareaopen(img_R_bw,120);%删除小于120的区域,
figure;imshow(img_R_bw_open);
[area_label,num_label]=bwlabel(img_R_bw_open);%标记
% figure;imshow(area_label,[]);
Re_area=regionprops(area_label,'Area');%求连通区域的面积
%%%下面计算单个种子的像素面积
%通过观察图发现有的地方是多个连在一起的,将其忽略,最大的区域忽略,总共(num_label)各连通区域还剩下n个,将n个面积相加求均值。
Re_area=cell2mat(struct2cell(Re_area));%数据转化,将struct变成double
Re_m=length(Re_area);%求长度
all_sum=0;%总数
cout=0;%面积在120200的个数
%%计算单个独立面积的个数和总和
for i=1:1:Re_m
    if Re_area(1,i)>100&&Re_area(1,i)<250
        all_sum=Re_area(1,i)+all_sum;
        cout=cout+1;
    end
end
if cout==0%没有单个独立的种子,需要重新设定参数
    sigle_area=1;
else
    sigle_are=all_sum/cout;%每个种子平均面积
end

Re_sum=sum(Re_area);%总面积
count_seed=round(Re_sum/sigle_are);%总面积除以单个面积求得大概的个数
fprintf('种子个数为%d\n',count_seed);

2、利用周长计算

clear all;close all;clc;
img=imread('种子.png');
figure;imshow(img);
img_R=img(:,:,1);%取红色通道分量分析
figure;imshow(img_R);


%%利用种子周长统计个数,通过观察发现种子的周长大概在40左右
img_edge=edge(img_R,'canny');%利用canny算子提取边缘
figure;imshow(img_edge);
img_edge_skel=bwmorph(img_edge,'skel',Inf);%利用形态学函数提取边缘
figure;imshow(img_edge_skel);
img_R_bw_open=bwareaopen(img_edge_skel,10);%删除小于120的区域,
figure;imshow(img_R_bw_open);

Re_sum=sum(sum(img_R_bw_open));%总周长
sigle_z=40;
count_seed=round(Re_sum/sigle_z);%总周长除以单个周长求得大概的个数
fprintf('利用区域条件方法统计的种子个数为%d\n',count_seed);

此外还有一些改进的方法,总体来收精度都不是很高。
链接:添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值