MatLab学习作业之数字图像处理下(台大郭彦甫)

Practice
一:Write a program to convert the image rice.png into a binary image using a threshold
• Do NOT use im2bw()
• Try different threshold values to see if you program works
%设定阈值使得rice图片成为黑白图,使用for循环自己设定阈值
I=imread(‘rice.png’);
level=mean(mean(I));%本次使用平均数作为阈值
BW=ones(256,256);预先创立矩阵加快运算速度
for i=1:size(I,1)
for j=1:size(I,2)
if I(i,j)>=level
BW(i,j)=255;
else
BW(i,j)=0
end
end
end
subplot(1,2,1); imshow(I);
subplot (1,2,2); imshow(bw);
二:Plot the histogram of grain size(画出米大小的分布直方图)
• Identify all the grains in the image by painting them in red(将所有的米标定为red)
clear all
clc
close all
I=imread(‘rice.png’);
BG=imopen(I, strel(‘disk’, 15));%得到背景background
I2=imsubtract(I, BG); level=graythresh(I2);%得到减去之后的和阈值
BW=im2bw(I2, level);%转化为黑白图
[labeled, numObjects]=bwlabel(BW, 8);%得到米数并进行标定
imhist()%在这不太会了,不知道如何得到米大小的分布的直方图&&

你可能感兴趣的:(Matlab学习)