Operaciones aritméticas en imágenes

OpenCVOpenCVBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido a este tutorial sobre operaciones aritméticas en imágenes utilizando OpenCV-Python. En este tutorial, cubriremos la adición, la resta y las operaciones bit a bit. Al final de este tutorial, tendrás una comprensión sólida de cómo manipular imágenes utilizando estas operaciones básicas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL opencv(("OpenCV")) -.-> opencv/BasicOperationsGroup(["Basic Operations"]) opencv/BasicOperationsGroup -.-> opencv/add("Image Addition") opencv/BasicOperationsGroup -.-> opencv/add_weighted("Image Blending") opencv/BasicOperationsGroup -.-> opencv/bitwise_and("Bitwise AND") opencv/BasicOperationsGroup -.-> opencv/bitwise_not("Bitwise NOT") opencv/BasicOperationsGroup -.-> opencv/bitwise_or("Bitwise OR") opencv/BasicOperationsGroup -.-> opencv/bitwise_xor("Bitwise XOR") opencv/BasicOperationsGroup -.-> opencv/imread("Image Read") opencv/BasicOperationsGroup -.-> opencv/imwrite("Image Write") opencv/BasicOperationsGroup -.-> opencv/subtract("Image Subtraction") subgraph Lab Skills opencv/add -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/add_weighted -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/bitwise_and -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/bitwise_not -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/bitwise_or -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/bitwise_xor -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/imread -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/imwrite -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} opencv/subtract -.-> lab-38502{{"Operaciones aritméticas en imágenes"}} end

Adición de imágenes

La adición de imágenes es el proceso de sumar los valores de píxeles de dos imágenes. En OpenCV, la función cv2.add() se utiliza para este propósito.

Abrir el shell de Python

Abra el shell de Python en la terminal

python3

Cargar dos imágenes

Utilice .imread para leer las imágenes objetivo.

import cv2 as cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

Sumar las imágenes

Utilice .add() para agregar las dos imágenes leídas en el paso anterior.

result = cv2.add(img1, img2)

Guardar el resultado

Escriba el resultado.

cv2.imwrite('Image_Addition.jpg', result)

Ejemplo

La imagen generada Image_Addition.jpg se ve así:

Image addition result example

Mezcla de imágenes

Esta también es una adición de imágenes, pero se le dan pesos diferentes a las imágenes para crear una sensación de mezcla o transparencia. Las imágenes se suman de acuerdo con la ecuación siguiente:

Image blending equation diagram

cv.addWeighted() aplica esta ecuación a la imagen.

Sumar las imágenes

Utilice .addWeighted() para aplicar la ecuación a las imágenes leídas en el paso anterior.

result = cv2.addWeighted(img1,0.7,img2,0.3,0)

Guardar el resultado

Escriba el resultado.

cv2.imwrite('Image_Blending.jpg', result)

Ejemplo

La imagen generada Image_Blending.jpg se ve así:

blended image result

Resta de imágenes

La resta de imágenes se utiliza para encontrar la diferencia entre dos imágenes. Resta los valores de píxeles de una imagen de otra. En OpenCV, se puede utilizar la función cv2.subtract().

Restar las imágenes

Utilice .subtract() para restar los valores de píxeles de la imagen1 de la imagen2.

result = cv2.subtract(img1, img2)

Guardar el resultado

Escriba el resultado.

cv2.imwrite('Image_Subtraction.jpg', result)

Ejemplo

La imagen generada Image_Subtraction.jpg se ve así:

Image subtraction result example

Operaciones bit a bit

Las operaciones bit a bit se utilizan para manipular los bits individuales de los valores de píxeles. OpenCV proporciona funciones como cv2.bitwise_and(), cv2.bitwise_or(), cv2.bitwise_xor() y cv2.bitwise_not() para realizar operaciones bit a bit.

Veamos un ejemplo de cada operación:

AND bit a bit

Utilice .bitwise_and() para calcular el AND bit a bit de los bits de los valores de píxeles en dos imágenes.

bitwise_and = cv2.bitwise_and(img1, img2)

OR bit a bit

Utilice .bitwise_or() para calcular el OR bit a bit de los bits de los valores de píxeles en dos imágenes.

bitwise_or = cv2.bitwise_or(img1, img2)

XOR bit a bit

Utilice .bitwise_xor() para calcular el XOR bit a bit de los bits de los valores de píxeles en dos imágenes.

bitwise_xor = cv2.bitwise_xor(img1, img2)

NOT bit a bit

Utilice .bitwise_not() para calcular el NOT bit a bit de los bits de los valores de píxeles en dos imágenes.

bitwise_not_img1 = cv2.bitwise_not(img1)

Guardar los resultados

Escriba los resultados.

cv2.imwrite('Bitwise_AND.jpg', bitwise_and)
cv2.imwrite('Bitwise_OR.jpg', bitwise_or)
cv2.imwrite('Bitwise_XOR.jpg', bitwise_xor)
cv2.imwrite('Bitwise_NOT_Image1.jpg', bitwise_not_img1)

Ejemplo

La imagen generada se ve así:

  • AND Bitwise_AND.jpg:
Bitwise AND operation result
  • OR Bitwise_OR.jpg:
Bitwise OR operation result
  • XOR Bitwise_XOR.jpg:
Bitwise XOR operation result
  • NOT Bitwise_NOT_Image1.jpg:
Bitwise NOT operation result

Resumen

¡Felicitaciones! Ahora has aprendido cómo realizar operaciones aritméticas en imágenes utilizando OpenCV-Python. Has cubierto la adición, resta y operaciones bit a bit de imágenes. Estas operaciones básicas pueden ser muy útiles para tareas de procesamiento de imágenes, como la mezcla de imágenes, la detección de cambios y el enmascaramiento de áreas específicas de una imagen.

Sigue practicando y experimentando con diferentes imágenes para entender mejor cómo funcionan estas operaciones. ¡Buena suerte y feliz codificación!