MATLAB图像处理之图像增强实战二

I = imread(‘rice.png’);%读取米粒图像
figure(1); subplot(221)
imshow(I);%显示原图像
background = imopen(I,strel(‘disk’,15));%形态学开操作
figure,
surf(double(background(1:8:end,1:8:end))),…
zlim([0 255]);%显示背景变化情况
set(gca,‘ydir’,‘reverse’);
I2 = imsubtract(I,background);%减去背景
figure(1); subplot(222)
imshow(I2)%显示去除背景后的图像
I3 = imadjust(I2);%调整图像的对比度
figure(1); subplot(223),%显示对比度调整后的图像
imshow(I3);
level = graythresh(I3);%设定阈值
bw = im2bw(I3,level);%生成二值图像
figure(1); subplot(224)
imshow(bw) %显示二值图像
[labeled,numObjects] = bwlabel(bw,4); % 生成标注矩阵
numObjects % 计算图像中目标对象的个数
rect = [105 125 10 10];%固定图像的区域
grain = imcrop(labeled,rect) % 确定标注矩阵的一部分
RGB_label = label2rgb(labeled, @spring, ‘c’, ‘shuffle’);%伪彩色图像
figure,
imshow(RGB_label)%显示伪彩色图像
graindata = regionprops(labeled,‘basic’)%返回图像的基本属性
graindata(50).Area%第50个目标对象的面积
allgrains = [graindata.Area];%生成所有目标对象的面积矩阵
max_area = max(allgrains) % 找出面积最大的米粒
biggrain = find(allgrains==max_area) % 找到面积最大米粒的标号
mean(allgrains) % 找到所有米粒的平均值
nbins = 20;
figure,
hist(allgrains,nbins)%显示所有米粒面积的直方图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_38127487/article/details/115259543