我正在嘗試制作黑白面具。下圖有椅子的黃色面具。我把它變成白色,其他一切都變成黑色。我使用了這種顏色 [220, 211, 81] 作為蒙版。如果我發現這個像素顏色,它表明沒有這樣的東西。我究竟做錯了什么 ? 代碼:
import cv2
color_to_seek = [220, 211, 81]
original = cv2.imread('image.png')
original = cv2.cvtColor(original, cv2.COLOR_BGR2RGB)
amount = 0
for x in range(original.shape[0]):
for y in range(original.shape[1]):
r, g, b = original[x, y]
if (r, g, b) == color_to_seek:
amount = 1
print(amount)`
圖片:
我期望黃色蒙版應該被白色像素替換,一切都是黑色的。蒙版或像素顏色之間有區別嗎?細化一點?
uj5u.com熱心網友回復:
正如
您可能需要為您的特定應用找到具有可接受數量的誤報/漏報的閾值。
例子:
import cv2
import numpy as np
image = cv2.imread('room.png')
color_to_seek_rgb = np.array([142, 140, 60])
color_to_seek_hsv = cv2.cvtColor(color_to_seek_rgb.reshape(1, 1, 3).astype(np.uint8), cv2.COLOR_BGR2HSV).flatten()
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# using lower values for H channel as it encodes luminance not a color information
lower_bound = color_to_seek_hsv - [10, 20, 20]
upper_bound = color_to_seek_hsv [10, 20, 20]
mask = cv2.inRange(image_hsv, lower_bound, upper_bound)
cv2.imwrite("mask.jpg", mask)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/506601.html