首页 文章

Matlab:ROI减法

提问于
浏览
0

我正在学习图像的统计特征 . 我正在阅读的一句话是

对于第一种方法,即纹理的统计特征,在加载图像后,将其转换为灰度图像 . 然后从原始图像中减去背景 . 这是通过减去图像的任何蓝色强度像素来完成的 . 最后,通过找到非零值的像素来获得ROI .

实施:

% PREPROCESSING segments the Region of Interest (ROI) for
% statistical features extraction.
% Convert RGB image to grayscale image
g=rgb2gray(I);
% Obtain blue layer from original image
b=I(:,:,3);
% Subtract blue background from grayscale image
r=g-b;
% Find the ROI by finding non-zero pixels.
x=find(r~=0);
f=g(x);

我的解释:

这里减去蓝色通道的目的与ROI是非蓝色背景的事实有关吗?喜欢 :

enter image description here

但在现实世界中,成像像一个物体,但被多种颜色包围?在这种情况下,提取ROI的最佳方法是什么?例如(假设鸟的所有部分只有2种颜色,绿色和黑色,并且忽略几何形状):

enter image description here

在那种情况下我该怎么做?这张照片还会变成灰度吗?虽然ROI(鸟)本身有黑色部分 .

我的意思是在鸟的情况下,我怎么才能提取 green & black 部分?并删除它的其余颜色(被视为背景)?

1 回答

  • 0

    在一般情况下,图像中的背景去除是一个庞大且有效的复杂主题,但我理解的是,您希望利用已有的关于背景的颜色信息(如果我错了,请纠正我) .

    如果您知道要删除的颜色,可以举例如下:

    • 从RGB切换到Lab颜色空间(Wiki link) .
      转换图像后

    • ,从背景颜色(比如橙色)计算欧几里德到图像中的所有像素

    • 定义像素为背景的阈值

    换句话说,如果Lab中像素的坐标接近Lab中的橙色坐标,则此像素为背景 . 使用Lab的优点是点之间的欧几里德距离与人类对颜色的感知有关 .

    我认为这应该有用,请试一试或让我知道我是否误解了这个问题 .

相关问题