使用 Python-OpenCV 进行图像中的颜色识别
原文:https://www.geesforgeks.org/color-identificati on-in-images-use-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 中识别颜色?
让我们尝试实际实现这个方法。例如,考虑下面给出的页面源。在这个源代码中,我们找到了shapes.jpg图像中的绿色。下面给出的例子中使用的图像
您可以下载这个文件,并将其保存在保存您当前正在编写的 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)
输出:
从 RGB 码中找到 HSV 码
你不知道怎么找到这个独特的 HSV 色码吗?只需编写下面给出的程序,从 RGB 颜色代码中找出 HSV 颜色代码。可以从 这里 选择想要的颜色的 RGB 色码。找到你想找的颜色的 RGB 代码后,把这个程序编写成那个颜色的 HSV 代码。
示例:在下面的源代码中,我们已经找到了绿色的 HSV 值。绿色的 RGB 值为[0,255,0]。
计算机编程语言
# 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]