c# - 图片中的颜色

标签 c# image-processing

我有一些正方形,每个正方形上有 4 种颜色(红色、绿色、蓝色等)。 我想制作一个可以识别颜色(通过网络摄像头)的程序,将它们记住在文本文件或其他东西中,然后,如果它再次看到相同的正方形来识别它。 我尝试对每种颜色做一些 RGB 限制,当程序处理图片时将每个方 block 的 RGB 与我的限制进行比较。

我似乎遇到的问题是,在不同的环境中(或多或少的光照)算法会失败。它要么将橙色视为绿色,要么无法识别红色或其他类似问题。

有没有更好的方法来比较颜色,或者我应该继续尝试为每种颜色找到更好的限制?

谢谢!

最佳答案

从 RGB 转换为 HSV,作为初始步骤(它是图像处理/比较操作的更好颜色空间 - 详情请参阅 this,或有关此颜色空间的更多一般信息请参阅 Wikipedia entry。)

RGB 和 HSV 之间的转换很简单,您可以通过快速搜索找到大量示例公式和代码。之后,出于前面链接中所述的原因,仅使用 Hue channel 进行比较。您应该在不同的光照条件下获得更好的结果。

关于c# - 图片中的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16882658/

相关文章:

python - OpenCV 图像匹配——从照片到表单模板

image-processing - ImageMagick:将灰色提升为 CMYK 黑色?

python - 通过使用 np.newaxis 进行 RGB 成像,从 ( :, :, 1) 扩展到 ( :, :, 3)

c# - 代码契约和类型转换

c# - 在 C# 中使用 MySQL

c# - 在 MVC 应用程序中显示/隐藏文本

C# .NET WinForms。 Visual Studio 无法识别子文件夹中的命名空间

javascript - 从 aspx 调用 Javascript 函数

image-processing - 追踪一片叶子

python - "System error: new style getargs format but argument is not a tuple"使用 cv2.blur 时