MATLAB教程——影像处理部分(台大)

查找米粒个数代码

I=imread('rice.png');## 读取图像数据
BG=imopen(I,strel('disk',15));
##开运算属于形态学图像处理,是先腐蚀后膨胀,在这里是将rice图像中的背景矩阵提取出来。
I2=imsubstract(I,BG);##将I的像素矩阵与背景像素矩阵相减,得相对准确的前景矩阵
level=graythresh(I2);
##在这个函数中,是使用最大类间方差法找到图片的一个合适的阈值(threshold)。再利用im2bw(将灰度图像转换为二值图像)函数,将找到的阈值输入,就可以把原图变为一个二值图。
BW=im2bw(I2,level);##大于level输出1,小于level输出0
[labeled,numObjects]=bwlabel(BW,8);
##8的位置代表该函数为八连通查找,指的是从区域内每一象素出发,可通过八个方向,即上、下、左、右、左上、右上、左下、右下这八个方向的移动的组合,在不越出区域的前提下,到达区域内的任意象素。而4连通则是上下左右

在[L,num] = bwlabel(BW,n)中,
L是一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num。
num里保存的是输入图像中连通区域的总数。可见这篇文章

将米粒标上颜色

添加代码RGB_label=label2rgb(labeled); imshow(RGB_label);
结果如下
Alt

将米粒变为红色

代码

for i=1:size(BW,1)
for j=1:size(BW,2)
if(BW(i,j)==1)
im(i,j,1)=255;
im(i,j,2)=0;
im(i,j,3)=0;
else
im(i,j,1)=0;
im(i,j,2)=0;
im(i,j,3)=0;
end
end
end

imshow(im);

结果如下
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值