我已经使用bwconcomp函数在二进制图像中查找对象。我知道如何访问numbobjects。我将regionprops用于其他元素。
我理想的目标是将它们的区域映射到彩色图像。因此,我可以在彩色图像上选择每个单独的对象,并在彩色图像上计算内容。我还想获得MBR的每个对象的角点像素。
如果你能指出我正确的方向来制作面具。那将是赞赏:))
答案 0 :(得分:0)
您可以使用边界框分析执行regionprops。你可以在那里找到没有对象。您还可以获得该对象的左上角坐标和高度和宽度。
如果您没有裁剪原始图像,则只需使用相同的坐标即可提取对象。如果要裁剪,则可以将偏移添加到左上角,并将原始图像添加到原始图像。
这是我的编码示例之一。
clear all;
clc;
%convert image into pixel data
im = imread('abc.jpg');
%convert image to binary with edges only
bw = im2bw(im, 0.1);
%show image
imshow(bw);
%identify various boxes present in the image and also calculate their area
stats = regionprops(bw, 'BoundingBox', 'Area');
j=1;
% m is the maximum area i.e. area of entire image
max = 2819982;
for i=2:length(stats)
if stats(i).Area ~= 1
if stats(i).Area <= max
%this would crop image to perticular box
ans=imcrop(im, stats(i).BoundingBox);
% here the image is saved as a new file
filename = sprintf('Answer_%d.jpg',j);
imwrite(ans,filename);
% j is just an incrementor for filename
j=j+1;
end
end
end
这是我工作的图像: -
目标是将每个矩形分隔为图像。