#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 (), чтобы найти зеленый