我想在matlab中处理图像
该图像由实心背景和两个样本(顶部和底部)组成。我已经有一个将顶部和底部分开并使其成为两个图像的代码。但是我没有工作的部分是将图像仅裁剪到粘合区域(图像中的红色框,我只标记了顶部)。但是,裁剪后的图像应该是一个矩形,就像红色框一样(黄色背景,之后可以丢弃)。
我知道这可以用 来完成imcrop
,但这需要用户手动输入。代码需要自动化,以便可以在没有用户输入的情况下处理更多图像。所有图像将具有相同的颜色(红色为胶水,黑色为材料)。
有人可以帮我弄这个吗?
编辑:感谢您的帮助。我使用以下代码来解决问题。但是,我无法摆脱红色框右侧的黑色部分。这可以通过在拍照前贴上该部分来解决。我使用的代码看起来有点奇怪,但它成功地计算了图片中的黑色区域并获得了百分比。
a=imread('testim0.png');
level = graythresh(a);
bw2=im2bw(a, level);
rgb2=bw2rgb(bw2);
IM2 = imclearborder(rgb2,4);
pic_negative = ait_imgneg(IM2);
%% figures
% figure()
% image(rgb2)
%
% figure()
% imshow(pic_negative)
%% Counting percentage
g=0;
for j=1:size(rgb2,2)
for i=1:size(rgb2,1)
if rgb2(i,j,1) <= 0 ...
& rgb2(i,j,2) <= 0 ...
& rgb2(i,j,3) <= 0
g=g+1;
end
end
end
h=0;
for j=1:size(pic_negative,2)
for i=1:size(pic_negative,1)
if pic_negative(i,j)== 0
h=h+1;
end
end
end
per=g/(g+h)
如果有人对改进代码有一些建议,我很高兴听到。