簡體   English   中英

如何使用opencv python將RGB顏色范圍更改為紅色

[英]how to change a range of RGB color to Red with opencv python

這個stackoverflow問題我發現了這段代碼

import numpy as np
import imutils
import cv2
img_rgb = cv2.imread('black.png')
Conv_hsv_Gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(Conv_hsv_Gray, 0, 255,cv2.THRESH_BINARY_INV |cv2.THRESH_OTSU)
img_rgb[mask == 255] = [0, 0, 255]
cv2.imshow("imgOriginal", img_rgb)  # show windows
cv2.imshow("mask", mask)  # show windows
cv2.waitKey(0)

有什么辦法可以改變路線嗎

img_rgb[mask == 255] = [0, 0, 255]

或其他使它改變顏色范圍的東西? 例如:

([255, 255, 0], [255, 55, 10])

是的你可以。

首先,必須創建要更改顏色范圍的遮罩,答案是OpenCVinRange函數

然后,通過numpy,您可以說蒙版不為0的地方在我的圖像中將它們塗成紅色。 這是該代碼:

import numpy as np
import cv2

# load image and set the bounds
img = cv2.imread("D:\\debug\\HLS.png")
lower =(255, 55, 0) # lower bound for each channel
upper = (255, 255, 10) # upper bound for each channel

# create the mask and use it to change the colors
mask = cv2.inRange(img, lower, upper)
img[mask != 0] = [0,0,255]

# display it
cv2.imshow("frame", img)
cv2.waitKey(0)

如果您實際上希望獲得多種顏色(例如,所有藍色),則最好使用HLS或HSV顏色空間。

暫無
暫無

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

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