¡Python usa el módulo OpenCV para lograr un código de muestra de fusión de imágenes!

Puede agregar dos imágenes a través de la función OpenCV cv.add () o simplemente a través de la operación numpy, res = img1 + img2. Las dos imágenes deben tener la misma profundidad y tipo, o la segunda imagen puede ser un valor escalar.

Tres fusiones

Tenga en cuenta que, al fusionar, las dos imágenes son generalmente del mismo tamaño. Si los tamaños son diferentes, primero debe recortar una parte de la imagen grande, fusionarla con la imagen pequeña y luego reemplazar la imagen grande original como un todo Recorta la parte pequeña de la imagen.

"" " 
# @Time: 2020/4/3 
# @Author: JMChen 
" "" 
import cv2 as cv 

img1 = cv.imread ( 'logo.png')  img2 = cv.imread ( 'lena.png') # in Get lena.png logo.png mismo tamaño y las filas de la ROI, cols, canales IMG2 = img1.shape img_ROI1 = [ 0 : filas, 0 : cols] img_ROI2 = cv.addWeighted (IMG1, de 0. a la . 7, img_ROI1, de 0. a la . 3 , 0) img2 [ 0 : filas, 0 : cols] = img_ROI2 # Mostrar la imagen mixta cv.imshow ( 'img2', img2) cv.waitKey ( 0) # Agregar dos imágenes (lena.png) + (logo .png) Fusion img2 = cv.imread ( 'lena.png')# 1, obtenga el mismo ROI en lena.png y logo.png img_ROI1 = img2 [ 0 : filas, 0 : cols] # 2, cree una máscara img1_gray basada en la imagen en escala de grises de logo.png usando una segmentación de umbral simple = cv.cvtColor (img1, cv.COLOR_BGR2GRAY) ret, mask = cv.threshold (img1_gray, 10, 255, cv.THRESH_BINARY) mask_inv = cv.bitwise_not (mask) # 3, realice operaciones bit a bit Y con la máscara, elimine En la parte distinta del cero del logotipo, obtenga una nueva imagen new_img2 = cv.bitwise_and (img_ROI1, img_ROI1, mask = mask_inv) # 4, agregue la nueva imagen al logotipo y luego reemplace esta parte con la parte img_ROI1 de la imagen original dst = cv. add (img1, new_img2) img2 [ 0 : filas, 0 : cols] = dst cv.imshow ( 'res', img2) cv.waitKey ( 0) cv.destroyAllWindows () # Implementa otra fusión img2 = cv.imread ( 'lena.png') img_ROI1 = img2 [ 0 : filas, 0: cols] dst_1 = cv.addWeighted (img_ROI1, 0. 55, dst, 0. 45, 0) img2 [ 0 : filas, 0 : cols] = dst_1 cv.imshow ( 'res_2', img2) cv.waitKey ( 0 ) cv.destroyAllWindows ()

El efecto es el siguiente:

 

 

Los parámetros proporcionales relacionados se pueden ajustar según sea necesario

Aquí se presenta este artículo sobre el código de muestra de Python usando el módulo OpenCV para lograr la fusión de imágenes. Para obtener más contenido relacionado de fusión de imágenes de OpenCV, busque nuestros artículos anteriores o continúe navegando por los artículos relacionados a continuación. ¡Espero que todos nos apoyen en el futuro!

Supongo que te gusta

Origin www.cnblogs.com/Py1233/p/12690968.html
Recomendado
Clasificación