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