clear all
close all
image = imread('pic.png');
imageGray = rgb2gray(image);
S=size(imageGray);
r1=84;
r2=704;
imageGrayMid=imageGray(r1:r2,:);
threshold=(max(imageGrayMid(:))-min(imageGrayMid(:)))*0.5;
label=imageGrayMid<=threshold;
labelAdd=zeros(S);
labelAdd(r1:r2,:)=label;
Area=sum(label(:))/prod(S);
AreasStr=sprintf('S=%f',Area);
%% 均值滤波
Fsize = [3, 3];
imageGrayMid_2 = imfilter(imageGrayMid, fspecial('average', Fsize));
threshold_2=(max(imageGrayMid_2(:))-min(imageGrayMid_2(:)))*0.5;
label_2=imageGrayMid_2<=threshold_2;
labelAdd_2=zeros(S);
labelAdd_2(r1:r2,:)=label_2;
Area_2=sum(label_2(:))/prod(S);
AreasStr_2=sprintf('S=%f',Area_2);
%% 显示
figure
subplot(221)
imshow(imageGray)
title('S=1')
subplot(222)
imshow(1-labelAdd)
title(AreasStr)
subplot(223)
imageGrayMid_2_Add=[imageGray(1:r1-1,:); imag
Matlab 求阴影部分面积
于 2024-01-04 23:43:07 首次发布