Conversión de imagen de Python de tres canales y de un solo canal

La conversión de tres canales a un solo canal
es muy simple. Cuando use cv2 para leer imágenes, especifique el formato de imagen de lectura cv2.IMREAD_GRAYSCALEcomo , pero use imwrite para guardar la imagen.

import cv2
import numpy as np
img = cv2.imread('./duola.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imwrite('new_duola.jpg',img)

print(img.shape)

Los siguientes son los parámetros de la función cv2.imread()

De un solo canal a tres canales

expand_dims(img,axis=0)
La siguiente es una comprensión de la latitud de inserción del eje de esta función.
Cuando el procesamiento es una matriz de una latitud, se puede insertar una latitud para convertirse en dos latitudes. Esta latitud se puede insertar en la x -posición del eje (eje = 0) o del eje y (eje = 1), cuando se insertan los datos de la matriz original de una latitud en el eje x se convierten en datos orientados a columnas, cuando se inserta la matriz original en el eje y se convierte en una fila. datos orientados.

import numpy as np
x = np.array([1,2,3,4,5,6])
print(x)
print(x.shape)
y = np.expand_dims(x,axis=0)
print(y)
print(y.shape)
z = np.expand_dims(x,axis=1)
print(z)
print(z.shape)
numpy.concatenate((a1,a2,...), axis=0)
axis=0 表示从行上拼接
axis=1 表示从列上拼接
a=np.array([1,2,3])
b=np.array([11,22,33])
c=np.array([44,55,66])
np.concatenate((a,b,c),axis=0)  # 默认情况下,axis=0可以不写

array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #Para el empalme de matrices unidimensionales, el valor del eje no afecta el resultado final

a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,21,31],[7,8,9]])
np.concatenate((a,b),axis=0)

matriz ([[ 1, 2, 3],
[ 4, 5, 6],
[11, 21, 31],
[ 7, 8, 9]])

np.concatenate((a,b),axis=1)  #axis=1表示对应行的数组进行拼接

matriz ([[ 1, 2, 3, 11, 21, 31],
[ 4, 5, 6, 7, 8, 9]])

Supongo que te gusta

Origin blog.csdn.net/threestooegs/article/details/126388663
Recomendado
Clasificación