首页下载资源大数据基于MATLAB的谷物计数(程序设计)

ZIP基于MATLAB的谷物计数(程序设计)

2401_86539719415.17KB需要积分:1

资源文件列表:

基于MATLAB的谷物计数(程序设计).zip 大约有5个文件
  1. 基于MATLAB的谷物计数(程序设计)/
  2. 基于MATLAB的谷物计数(程序设计)/1.jpg 435.53KB
  3. 基于MATLAB的谷物计数(程序设计)/finddomain.m 1.21KB
  4. 基于MATLAB的谷物计数(程序设计)/main.m 1.62KB
  5. 基于MATLAB的谷物计数(程序设计)/mainfc.p 202B

资源介绍:

基于MATLAB的谷物计数可以通过图像处理和计算机视觉技术实现。下面是一个基本的谷物计数的步骤: 1. 读取图像:使用MATLAB的imread函数读取谷物图像文件。 2. 图像预处理:对图像进行预处理,包括去噪、平滑和增强等处理。可以使用MATLAB中的函数如imnoise、medfilt2等进行处理。 3. 提取特征:根据谷物的特征,如颜色、形状等,使用图像处理技术提取谷物的特征。可以使用MATLAB中的函数如rgb2gray、im2bw等进行处理。 4. 目标分割:通过图像分割技术将图像中的谷物与背景分割开来。可以使用MATLAB中的函数如imsegkmeans、imbinarize等进行处理。 5. 谷物计数:对分割后的目标进行计数。可以使用MATLAB中的函数如bwlabel、regionprops等进行处理。 6. 结果展示:将计数结果进行展示,可以使用MATLAB中的imshow和impoint等函数进行展示。 总的来说,基于MATLAB的谷物计数可以通过图像处理和计算机视觉技术实现,其中包括图像读取、预处理、特征提取、目标分割、计数和结果展示等步骤。
clc img=imread('1.jpg'); figure(1) imshow(img); title('原图'); gray_img=rgb2gray(img);%灰度 figure(2) imshow(gray_img); title('灰度图'); mainfc; gray_img=imnoise(gray_img,'gaussian',0.04); figure(3) imshow(gray_img); title('加入高斯噪声'); f=gray_img; f2=double(f); [row,col]=size(f); f3=zeros([row,col]); for x=2:(row-1); for y=2:(col-1); f3(x,y)=median([f2(x-1,y-1),f2(x,y-1),f2(x+1,y-1),f2(x-1,y),f2(x,y),f2(x+1,y),f2(x-1,y+1),f2(x,y+1),f2(x+1,y+1)]); end end figure(4) gray_img=f3; imshow(gray_img/255); title('去噪'); bw_img=gray_img<200; figure(5),imshow(bw_img);%阈值 bw_img=~bw_img; figure(6),imshow(bw_img);%反色 img2=bw_img; se=strel('disk',5); %生成圆形结构元素 img2=imdilate(img2,se); %用生成的结构元素对图像进行膨胀 figure(7) imshow(img2); title('膨胀'); se=strel('disk',1); img2=imclose(img2,se); figure(8);imshow(img2);title('闭运算') img2=imfill(img2,'holes'); img2=img2; figure(9);imshow(img2); title('空洞填充') %%%定位计数 %计算连通域 img3=img2; %% [row,col] = size(img3); count = 0; ricearr = zeros(row*col,1); visited = zeros(size(img3));% % 调用计算连通域函数进行数米粒和计算米粒的面积 for i = 1:row for j = 1:col if img3(i,j)&&visited(i,j) == 0 count = count +1; pt = [i; j]; [c ,domain] =finddomain(img3, pt); ricearr(count) = c; ricearr(1:count); for m = 1:c visited(domain(1,m), domain(2, m)) = 1; end end end end disp('个数为'); disp(count);
100+评论
captcha