![](/img/trans.png)
[英]How to find roi_corners based on lower and upper pink color range so it can be blurred in python with opencv
[英]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.