OpenCV python ищет цвет с помощью порога

#python #numpy #opencv-python

Вопрос:

Я пытаюсь объединить два изображения следующим образом. У меня есть эти два изображения в папке и изображение обложки, объединив эти два изображения, я хочу получить этот конечный результат. Для этого я делаю следующее.

 import cv2
import numpy as np

img = cv2.imread('carpeta3.png', cv2.IMREAD_UNCHANGED)
cover = cv2.imread('cover.png', cv2.IMREAD_UNCHANGED)
pos = np.full((img.shape[0],img.shape[1]), False) 

#Search for green pixels  
for i in range (0,img.shape[0]):
    for j in range (0,img.shape[1]):
        color = img[i,j]
        if color[0] == 0 and color[1] == 255 and color[2] == 0:
            pos[i,j] = True
        else:
            continue
        
#cropping the cover image
for i in range (0,img.shape[0]):
    for j in range (0,img.shape[1]):
        if pos[i,j] == False:
            cover[i,j] = [0,0,0,255]
        else:
            continue

#combining the two images
for i in range (0,img.shape[0]):
    for j in range (0,img.shape[1]):
        if pos[i,j] == True:
            img[i,j] = cover[i,j]
        else:
            continue

cv2.imwrite('D:/Img/test.png',img)
 

В качестве конечного результата я получаю этот конечный результат после выполнения кода
. Как вы можете видеть, все еще осталось несколько зеленых пикселей, есть ли какой-либо способ поиска этих пикселей с пороговым значением?

Комментарии:

1. Используйте cv2.inRange (), чтобы найти зеленый