Matlab:ROI减法

时间:2016-10-02 14:59:54

标签: matlab image-processing

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

  

第一种方法是纹理的统计特征,之后   加载图像后,将其转换为灰度图像。那么   从原始图像中减去背景。这是通过   减去图像的任何蓝色强度像素。最后,投资回报率   通过找到非零值的像素来获得。

实施:

% 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 :(得分:0)

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

如果您知道要删除的颜色,例如:

  • RGB 切换到 Lab 颜色空间(Wiki link)。
  • 转换图像后,从背景颜色(比如橙色)计算欧几里德到图像中的所有像素
  • 定义像素为背景的阈值

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

我认为这应该有效,如果我误解了这个问题,请试一试或告诉我。