二进制图像的困难(MATLAB)

时间:2014-07-10 12:23:38

标签: matlab image-processing blob invert

作为更大程序的一部分,我需要将图像转换为二进制文件,然后使用regionprops工具箱从中获取一些信息。所有图片都包含一个针对不同颜色背景的对象。但是,根据被检测物体的颜色,二进制图像上的物体变白,而背景变黑,反之亦然。在对象变黑的情况下,程序的其余部分被抛弃。有没有办法只获取对象为白色的图像?而不是手动查看每个图像并反转一些?

2 个答案:

答案 0 :(得分:2)

您的物体是否曾触及图像的边缘?如果不是,请检查边缘的任何像素,如果它是白色的 - >翻转颜色。

编辑: 假设B是您的二进制图像,请在代码中添加以下行:

B = logical(B); %ensuring it's in "logical" format
if(B(1, 1) == true)
    B = ~B;
end;

答案 1 :(得分:1)

你也可以选择多数,假设对象在大多数情况下属于少数,背景占多数。

B = logical(B);
if sum(B(:)) > numel(B) / 2
  B = ~B;
end