将二进制图像中的对象映射到我的彩色图像上

时间:2014-12-11 04:33:30

标签: matlab image-processing

我已经使用bwconcomp函数在二进制图像中查找对象。我知道如何访问numbobjects。我将regionprops用于其他元素。

我理想的目标是将它们的区域映射到彩色图像。因此,我可以在彩色图像上选择每个单独的对象,并在彩色图像上计算内容。我还想获得MBR的每个对象的角点像素。

如果你能指出我正确的方向来制作面具。那将是赞赏:))

1 个答案:

答案 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

这是我工作的图像: - abc.jpg

目标是将每个矩形分隔为图像。