c语言米粒数实验报告,数字图像处理实验报告米粒

41528d3028836879cd698677c3999917.gif数字图像处理实验报告米粒

一、任务描述本次试验的主要任务是用 matlab 编写程序确定图 1(原始图像)中的米粒个数,达到能辨认连接的两个米粒和不足一个的米粒的精确度,并计算出了米粒的平均大小,标识出了最大面积的米粒。二、设计思路由于原始图像是24位彩色图像,不便于程序处理,所以首先将原始图像转换成为256级灰度图像,再将灰度图像二值化(如图2) ,并将边缘空白处赋值为临近灰度值,这样就得到了便于处理的二值图像。运用四连同准则的bwlable函数找到并大致确定米粒的个数M 0,实验中发现有的米粒面积过大(>1000) ,经分析为两个米粒连接在一起的情况,又考虑到噪声的存在,根据实验数据分析,我们设置了米粒面积的有效范围:40~0.6N1(N1为bwlable函数找到的最大面积) ,即小于40的视为噪声,大于0.6n1的视为有两个米粒连接。这样就进一步精确地计算出了米粒的个数M,再与累加的有效范围相除,就可以计算出米粒的平均大小了。最后,确定最大面积的米粒的坐标,将其赋值为白色,显示在256级灰度图像中。三、程序流程图图1图2四、程序代码clear; %清内存clc; %清命令窗口close all; %关闭图形窗口A = imread( 4.bmp ); %读入 24 位彩色图像[m n s] = size(A);C(:,:) = A(:,:,1); %将彩色图像转化 256 级灰度图像subplot(1,3,1);imshow(C); title( 原始图片 );%B(1:m*2/3,:)=im2bw(C(1:m*2/3,:),0.55); %将 256 级灰度图像二值化 %B(m*2/3:m,:)=im2bw(C(m*2/3:m,:),0.45); %适用于图片 rice.pngB(1:m*3/4,:)=im2bw(C(1:m*3/4,:),0.45); %适用于图片 4.bmpB(m*3/4:m,:)=im2bw(C(m*3/4:m,:),0.35);B(1,:) = B(2,:); %将边缘的空白赋值为邻近灰度值B(m,:) = B(m-1,:);B(:,1) = B(:,2);B(:,n) = B(:,n-1);subplot(1,3,2);imshow(B); title( 二值化图片 );L4 = bwlabel(B,4); %根据四连通准则判定目标Y = max(L4); %找矩阵 L4 每列的最大值count4 = max(Y) ; %找向量 Y 的最大值count3=count4;num1=0;for value = 1:count3;[r,c]=find(L4==value); %算面积 num=length(r); X(value)=num;N1=(max(X));if num>40num1=num1+num;end endfor i=1:count3 if X(i)>N1*0.6count4 = count4+1;X(i)=0;endif X(i)<40 count4 = count4-1;endendcount=count4average=num1/countN=(max(X))num2=find(N==X);[q,p]=find(L4==num2);for i=1:NC(q(i),p(i))=255;endsubplot(1,3,3);imshow(C)zoom on; %单击鼠标左键放大、右键缩小图像五、实验结果count =78 米粒个数average =428.9487 米粒平均面积N =635 最大面积米粒二二二二 二二二二二 二二二二二二

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值