imagens de exibição opencv e matplot

Aqui está uma imagem, o nome da imagem é flower.jpg Insira a descrição da imagem aqui
Durante o processamento da imagem, se precisarmos exibir a imagem, podemos usar opencv para lê-la e exibi-la, ou podemos usar matplotlib para lê-la e exibi-la. No entanto, a forma como o opencv lê imagens coloridas não é a forma RGB, o Opencv lê na forma de BGR por padrão (a razão histórica para isso parece estar relacionada à câmera, você pode verificar as informações relevantes).

Leia fotos

A seguir está como opencv e matplotlib leem imagens

import cv2 as cv
import matplotlib.pyplot as plt
#opencv
imgA = cv.imread("flower.jpg",1)
# matplotlib
imgB = plt.imread("flower.jpg")

Mostrar fotos

Usando o mesmo módulo para ler e exibir, o efeito é o mesmo. A diferença mencionada aqui é principalmente o método de armazenamento de imgA e imgB.

opencv

Insira a descrição da imagem aqui

matplotlib

Insira a descrição da imagem aqui

Exibir usando módulos diferentes

leituras opencv, exibições matplot.
Insira a descrição da imagem aqui

Comparado

imgA armazenado por opencv:
Insira a descrição da imagem aqui
imgB armazenado por matplotlib:
Insira a descrição da imagem aqui
Pode-se ver que imgA e imgB são matrizes tridimensionais.Os três elementos mais internos são o que costumamos chamar de "RGB", enquanto opencv e matplotlib fazem o oposto, usando BGR.

Exibir imagens usando matplitlib

Se quisermos converter imagens opencv para o formato RGB e exibi-las, podemos consultar os seguintes métodos.

Divisão e ressurgimento de canais

import cv2 as cv
import matplotlib.pyplot as plt
	
img = cv.imread("flower.jpg", 1)
b, g, r = cv.split(img)    #通道分离
img = cv.merge([r, g, b])    #改序合并
plt.imshow(img)
plt.show()

O resultado é mostrado abaixo:

Insira a descrição da imagem aqui

Usando a função cvtColor

import cv2 as cv
import matplotlib.pyplot as plt
	
img = cv.imread("flower.jpg", 1)
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)  #颜色通道转换
plt.imshow(img)
plt.show()

O resultado é mostrado abaixo:
Insira a descrição da imagem aqui

Acesso reverso à fatia

Matrizes numpy também podem ser acessadas usando fatias, e img também é uma matriz numpy.

import cv2 as cv
import matplotlib.pyplot as plt

img = cv.imread("flower.jpg", 1)
img = img[:,:,::-1]    #色彩是第三个维度,::-1 表示矩阵的逆序全访问
plt.imshow(img)
plt.show()

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/m0_67313306/article/details/127524254
Recomendado
Clasificación