📜  使用Python识别图像中的颜色 – OpenCV

📅  最后修改于: 2022-05-13 01:55:29.703000             🧑  作者: Mango

使用Python识别图像中的颜色 – OpenCV

Python的一个开源库, OpenCV主要用于图像和视频处理。不仅支持任何系统,如 Windows、Linux、Mac 等,而且它可以在任何编程语言中运行,如Python、C++、 Java等。OpenCV 还允许您识别图像中的颜色。你不知道如何在图像中找到这些颜色吗?

图像中的颜色识别

监视器或电视屏幕基本上产生三种颜色,即红色、绿色和黄色。但是这三种颜色的组合和强度会产生各种颜色。因此,每种颜色都有其唯一的HSV 颜色代码。为了在给定的图像中找到指定的颜色,我们需要使用该颜色的下限和上限。

示例:为了找到图像中的绿色,我们需要为绿色指定上下 HSV 颜色代码,如下所示。

lower=np.array([50, 100,100])
upper=np.array([70, 255, 255])

如何识别 OpenCV 中的颜色?

让我们尝试实际实现这个方法。例如,考虑下面给出的页面源。在此源代码中,我们在shape.jpg图像中找到绿色。下面给出的示例中使用的图像



您可以下载它并将其保存在保存当前正在编写的Python文件的同一文件夹中。

执行:

Python
# Python program to identify
#color in images
  
# Importing the libraries OpenCV and numpy
import cv2
import numpy as np
  
# Read the images
img = cv2.imread("Resources/shapes.jpg")
  
# Resizing the image
image = cv2.resize(img, (700, 600))
  
# Convert Image to Image HSV
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
  
# Defining lower and upper bound HSV values
lower = np.array([50, 100, 100])
upper = np.array([70, 255, 255])
  
# Defining mask for detecting color
mask = cv2.inRange(hsv, lower, upper)
  
# Display Image and Mask
cv2.imshow("Image", image)
cv2.imshow("Mask", mask)
  
# Make python sleep for unlimited time
cv2.waitKey(0)


Python
# Python programs to find
# unique HSV code for color
  
# Importing the libraries openCV & numpy
import cv2
import numpy as np
  
# Get green color
green = np.uint8([[[0, 255, 0]]])
  
# Convert Green color to Green HSV
hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
  
# Print HSV Value for Green color
print(hsv_green)
  
# Make python sleep for unlimited time
cv2.waitKey(0)


输出:

从 RGB 代码中查找 HSV 代码

你不知道如何找到这个独特的HSV颜色代码吗?只需编写下面给出的程序即可从 RGB 颜色代码中找出 HSV 颜色代码。您可以从这里选择您想要的颜色的 RGB 颜色代码。找到要查找的颜色的 RGB 代码后,将此程序编写为该颜色的 HSV 代码。

示例:在下面的源代码中,我们找到了绿色的 HSV 值。绿色的 RGB 值为 [0, 255, 0]。

Python

# Python programs to find
# unique HSV code for color
  
# Importing the libraries openCV & numpy
import cv2
import numpy as np
  
# Get green color
green = np.uint8([[[0, 255, 0]]])
  
# Convert Green color to Green HSV
hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
  
# Print HSV Value for Green color
print(hsv_green)
  
# Make python sleep for unlimited time
cv2.waitKey(0)

输出:

找到特定颜色的唯一 HSV 代码后,按照以下步骤获取该颜色的 HSV 下限和 HSV 上限。

lower = [h-10, 100, 100]
upper = [h+10, 255, 255]

示例:对于绿色,HSV 颜色代码为 [60, 255, 255]。因此,该颜色的 HSV 上限和下限如下。

lower = [50, 100, 100]
upper = [70, 255, 255]