【问题标题】:How to convert color with OpenCV?如何使用 OpenCV 转换颜色?
【发布时间】:2019-09-04 10:49:55
【问题描述】:

我正在努力将红色转换为另一种颜色,蓝色、黄色、绿色等。

我已经实现了将红色转换为灰度颜色,如下所示。

    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

但我真正想要实现的是将一种颜色变成另一种颜色,而不是灰度。我应该如何更改代码或任何好的参考?谢谢。

【问题讨论】:

标签: python opencv


【解决方案1】:

您正在对掩码中的所有点使用值 125:

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

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

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

完整代码:

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()

【讨论】:

  • 感谢您的友好回答!我选择它作为最佳答案。
猜你喜欢
  • 2012-11-02
  • 2015-08-09
  • 2017-08-10
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 2013-08-15
相关资源
最近更新 更多