Operación bit a bit de imagen bit a bit (), transformación del espacio de color cvtColor, mapa de color applyColorMap ()

1. Negación bit a bit bitwise_not()
La negación bit a bit consiste en cambiar el valor a 0 y 0 a 1 según cada bit. Por ejemplo, 0xf0 se convierte en 0x0f si se niega bit a bit. Si se trata de datos de tipo uint8, niégalo. El resultado de agregar los datos antes y después es 0xff (255).

img_ret1 = cv2.bitwise_not(img1)

2. Las operaciones bit a bit AND bitwise_and(), o bitwise_or(), XOR bitwise_xor() bit a bit
AND, OR, XOR requieren la interacción de 2 objetos de imagen, o 1 objeto de imagen y 1 dato escalar.

dst = cv2.bitwise_and(src1, src2[, dst[, mask]] )
dst = cv2.bitwise_or(src1, src2[, dst[, mask]] )
dst = cv2.bitwise_xor(src1, src2[, dst[, mask]] )

Las operaciones bit a bit en las dos imágenes son las mismas que las operaciones aritméticas y también requieren que las dos imágenes tengan el mismo tamaño y el mismo número de canales. Los tipos de datos de las dos imágenes en operaciones de bits también deben ser consistentes.
Un buen hábito de programación es usar un cuádruple para representar este escalar independientemente de cuántos canales tenga la imagen. Si no desea realizar operaciones de bits en ciertos canales, use el correspondiente todo-0 o todo-f en su lugar, como un Tipo uint8 de 3 canales. Para imágenes, solo necesita AND 2 canales con 0x33, y el cuádruple construido es (0xff, 0x33, 0xff, 0xff).

img_ret1 = cv2.bitwise_and(img1,(0x3f,0x3f,0x3f,0))

Rara vez se utilizan operaciones de bits en tipos de punto flotante.

Conversión de color cvtColor()

En imágenes digitales, el modelo de color más común es el modelo RGB (rojo, verde, azul, el orden de organización de las imágenes en color en OpenCV es BGR, todavía modelo RGB), este modelo es un modelo común para el procesamiento de hardware, como la adquisición de imágenes. Los sensores CCD, monitores que muestran imágenes, etc., son consistentes con el modelo HSV (croma, saturación, brillo) que describe la observación del ojo humano.

OpenCV proporciona interfaces para convertir varios modelos de color (espacios de color) entre sí. Por ejemplo, se puede convertir de BGR a HSV, HSV a BGR o BGR a escala de grises.
dst=cv2.cvtColor(src, code[, dst[, dstCn]])
src es el objeto de la imagen de origen;
el código es la constante macro definida por el espacio de color en OpenCV. Puede recorrer todas las conversiones del espacio de color a través del método colores = [i for i in dir(cv) if i.startswith('COLOR_') ] Nombre, hay 274 métodos de conversión en la versión 4.5.2.
Los más utilizados son COLOR_BGR2GRAY, COLOR_GRAY2BGR, COLOR_BGR2HSV, COLOR_BGR2RGB.
dstCn es el número de canales de la imagen de destino. Si se establece en 0, el número de canales de la imagen de destino se calculará automáticamente a partir de la imagen de origen.

img_ret2 = cv2.cvtColor(img2,cv2.COLOR_BGR2HSV)

Espacio de color HSV

mapa de colores

applyColorMap(), que puede convertir imágenes en escala de grises en imágenes en color, con hasta 22 modos de conversión.

cv2.applyColorMap(src, colormap[, dst]) ->dst

Donde src es la imagen de entrada, que puede ser una imagen de 8 bits de un solo canal o de 3 canales.
Colormap es un modo de mapa de colores y puede pasar números enteros del 0 al 21 correspondientes a varios mapas de colores.

import cv2 
img_gray = cv2.imread("ha.jpg",cv2.IMREAD_GRAYSCALE)
for i in range(0,21):
    dst = cv2.applyColorMap(img_gray,i) 
    cv2.imshow('map',dst) 
    cv2.waitKey(500)
    cv2.imwrite("map-"+str(i)+".jpg",dst)

Supongo que te gusta

Origin blog.csdn.net/aqiangdeba/article/details/129764360
Recomendado
Clasificación