为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 OpenCV 转换颜色?

如何使用 OpenCV 转换颜色?

PIPIONE 2022-05-19 14:25:08
我正在努力将红色转换为另一种颜色,蓝色,黄色,绿色等。我已经实现了将红色转换为灰度颜色,如下所示。    img2 = cv2.imread('output2.jpg')    img_hsv=cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)    # lower mask (0-10)    lower_red = np.array([0,50,50])    upper_red = np.array([10,255,255])    mask0 = cv2.inRange(img_hsv, lower_red, upper_red)    # upper mask (170-180)                                                                                                                                                            lower_red = np.array([170,50,50])        upper_red = np.array([180,255,255])        mask1 = cv2.inRange(img_hsv, lower_red, upper_red)        # join my masks        mask = mask0+mask1        output_img = img2.copy()        output_img[np.where(mask!=0)] = 125但我真正想要实现的是将一种颜色变成另一种颜色,而不是灰度。我应该如何更改代码或任何好的参考?谢谢你。
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

您将值 125 用于掩码中的所有点:

output_img[np.where(mask!=0)] = 125

如果要更改为彩色像素,只需为该像素分配一个颜色数组,例如:

output_img[np.where(mask!=0)] = [125, 50, 50] #RGB array

//img1.sycdn.imooc.com//6285e2e8000146ae03590538.jpg

完整代码:


import numpy as np

import cv2

import matplotlib.pyplot as plt


img2 = cv2.imread('sample.png')

img_hsv=cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)

# lower mask (0-10)

lower_red = np.array([50,50,0])

upper_red = np.array([255,255,50])

mask0 = cv2.inRange(img_hsv, lower_red, upper_red)


# upper mask (170-180)                                                                                                                                                        

lower_red = np.array([50,50,50])    

upper_red = np.array([255,255,180])    

mask1 = cv2.inRange(img_hsv, lower_red, upper_red)    


# join my masks    

mask = mask0+mask1    


output_img = img2.copy()    

output_img[np.where(mask!=0)] = [125, 50, 50]



plt.imshow(img2)


plt.title('Original')

plt.show()


plt.imshow(output_img)


plt.title('After')

plt.show()


查看完整回答
反对 回复 2022-05-19
  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信