gpt4 book ai didi

Matlab颜色检测

转载 作者:行者123 更新时间:2023-12-04 05:29:59 32 4
gpt4 key购买 nike

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

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

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

除了它有效(这个没有)

更新:

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

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

Everything is going well..

然后要求该功能在后面的图像中识别道路...

uh oh

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

最佳答案

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

这里有一些可能会有所帮助的事情。

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

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

使用边缘检测(请参阅 matlab 的精明边缘检测器)可能会为您提供一些边界信息。如果您正在寻找光滑的对象,则其中不会有很多边缘。

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

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转换为灰度
enter image description here
选择了一个与道路灰度基本匹配的区域
enter image description here
请注意,道路的某些部分没有被捕获,并且边缘是块状的。比如这个 -------------^

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

关于Matlab颜色检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771706/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com