【问题标题】:Matlab color detectionMatlab颜色检测
【发布时间】:2012-10-07 18:43:58
【问题描述】:

我试图始终如一地检测同一场景的图像之间的某种颜色。这个想法是根据颜色配置文件识别一组对象。因此,例如,如果给定一个场景,其中有一个绿球,我选择该绿色作为调色板的一部分,我想要一个函数,它有一个反映它检测到球的矩阵。

谁能为这个项目推荐一些matlab函数/插件/起点?理想情况下,颜色识别函数将采用一组颜色值,并在某个阈值内匹配它们。

有点像这样: http://www.mathworks.com/matlabcentral/fileexchange/18440-color-detection-using-hsv-color-space-training-and-testing

除了它有效(这个没有)

更新:

这就是我选择不使用上述工具包的原因..

我首先在图片中选择一些感兴趣的颜色

然后让函数在后面的图像中识别道路...

而且绝对不会触发任何有用的东西。所以,是的,除了我在下载和修复的代码中遇到的几个错误之外,这有点令人兴奋。我没有尝试修复识别颜色的代码主体,因为.. 好吧,我不知道怎么做,这就是我来这里的原因。

【问题讨论】:

  • 您链接到的内容有什么问题?你试图修复它/改进它/解决它什么?你用的代码在哪里?它的哪些部分不起作用?
  • 我会更新我的问题以反映这一点,一秒钟。
  • 查看这个相关答案:How can I convert an RGB image to grayscale but keep one color?(以及旁边的链接问题列表)
  • 您是在使用图片还是视频流中的图片?
  • 可能两者都有,会有什么不同?

标签: matlab image-processing computer-vision


【解决方案1】:

所以,让我首先说使用颜色配置文件进行道路检测是一个病态问题。但是,如果道路的颜色是一致的,并且照明不会改变您尝试识别的对象的颜色,那么您可能会拍摄。 (如果这是在室外拍摄,或者使用不同的相机,或者如果发生阴影,或者它发生在任何类型的真实世界环境中,这将非常困难)

这里有几件事可能会有所帮助。

尝试事先对图像进行平滑处理,在第一张图像中得到不好结果的原因可能是道路像素变化很小。如果你可以模糊它们,或者使用某种分水岭或局部平均,你可能会得到颜色更一致的区域。

您也可以考虑使用 LAB 颜色空间而不是 HSV 或 RGB。

使用边缘检测(请参阅 matlab 的 canny 边缘检测器)可能能够为您提供一些边界信息。如果你正在寻找一个光滑的物体,它里面不会有很多边。

编辑:我试图以最简单的方式遵守这个建议。以下是生成的代码和一些示例。

im=rgb2gray(im) %for most basic color capturing.. using another color space is better practice
%imshow(im)
RoadMask=roipoly(im)%create mask 
RoadMask=uint8(RoadMask);%cast to so you can elementwise multiply
im=im.*RoadMask;%apply mask
[x y]=size(im);
for i=1:x
    for j=1:y
        %disp('here')
        if (im(i,j)<160 || im(i,j)>180) %select your values based on your targets range
            im(i,j)=0;                  %replace everything outside of range with 0
            %disp(im(x,y))              %if you'd like to count pixels, turn all values
        end                             %within range to 1 and do a sum at end
    end
end

首先从RGB转换为灰度 选择了一个与道路灰度大致匹配的区域 注意部分道路没有被捕获并且块状边缘。比如这样-------------^

这个实现又快又脏,但我想在忘记之前把它放上来。我将尝试使用实现平滑、采样和 LAB 颜色空间的代码进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 2011-11-22
    • 2014-05-13
    • 2013-05-06
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多