如何使用 Python OpenCV 将颜色提取图像更改为相同颜色?

How do I change the color extracted image to the same color with Python OpenCV?

我用 cv2.inRange() 在图像中提取了绿色。

但是,提取出来的图片颜色都不一样。

像这样 --> enter image description here

我想将提取的图像的颜色更改为相同的颜色。

请帮帮我....

这是我的代码。

import numpy as np
import cv2

img = cv2.imread('test_img.jpg')
height, width = img.shape[:2] 
   
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 
    
lower_green = (35,45,0,0) 
upper_green = (80, 255, 255,0) 
img_mask = cv2.inRange(img_hsv, lower_green, upper_green)
img_result = cv2.bitwise_and(img, img, mask = img_mask) 

cv2.imshow('color',img_result)

输出

enter image description here

您需要zero图像的BR尺寸,如下:

import numpy as np
import cv2

img = cv2.imread('test_img.jpg')
height, width = img.shape[:2] 
   
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 
    
lower_green = (35,45,0,0) 
upper_green = (80, 255, 255,0) 
img_mask = cv2.inRange(img_hsv, lower_green, upper_green)
img_result = cv2.bitwise_and(img, img, mask = img_mask)[:, :, 1]

img[:, :, 0] = 0
img[:, :, 2] = 0
img[:, :, 1] = img_result

cv2.imshow('color', img)
cv2.waitKey(0)

或者如果你想要更简单的输出图片的方式,可以使用matplotlib.pyplot,如下:

import matplotlib.pyplot as plt

plt.imshow(img)

干杯