簡體   English   中英

如何找到 colors 顏色的“上”和“下”范圍?

[英]How to find a colors “Upper” and “Lower” range of a color?

我剛剛開始學習使用 opencv 進行顏色過濾。 我已經了解了大部分基礎知識,但被困在一件事上。

import cv2
import numpy as np

img = cv2.imread("Circles.png")

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

lower_range = np.array([169,100,100])
upper_range = np.array([189,255,255])

mask = cv2.inRange(hsv, lower_range, upper_range)

cv2.imshow("Image", img)
cv2.imshow("Mask",mask)

cv2.waitKey(0)
cv2.destroyAllWindows()

在哪里可以找到要過濾的 colors 的范圍?

謝謝

所以基本上,你要做的基本上是過濾掉一種顏色。 默認情況下,圖像以藍色、綠色和紅色三個通道表示。 但是,使用這種表示模式,您無法輕松過濾 colors,因為這些值被分成三個通道。 這就是 HSV(色相、飽和度、值)表示模式發揮作用的地方。

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)將 BGR 格式圖像轉換為 HSV 格式表示。 現在,您可以獲得所需顏色的值,只需將 +-delta 值添加到 H 通道,您就可以相應地過濾顏色。

例如,如果要過濾綠色,則綠色的 BGR 表示將為 (0,255,0)。 首先,我們需要在 HSV 中找到等效的顏色表示,即 (60,255,255)。 我們可以相應地添加 [H-10, 100,100] 和 [H+10, 255, 255] 作為上限和下限。

您可以使用將任何 BGR 轉換為相應的 HSV 值。

color_bgr=np.uint8([[[0,255,0]]])
color_hsv = cv2.cvtColor(color_bgr,cv2.COLOR_BGR2HSV)
print(color_hsv)

更多詳情參考此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM