如何使用 OpenCV Python 将一系列 RGB 颜色更改为红色?

问题描述 投票:0回答:1

来自如何使用 OpenCV Python 将黑色更改为红色?我找到了这段代码

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])
python opencv image-processing python-3.7 image-editing
1个回答
9
投票

是的,你可以。

首先,您必须创建要更改的颜色范围的遮罩,答案是 OpenCV 的 inRange 函数

然后,通过 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 颜色空间。

© www.soinside.com 2019 - 2024. All rights reserved.