# # OPENCV imdecode resolver el problema de la función para abrir la imagen, la decoloración de la imagen

La mayoría de la gente usa la función imdecode para abrir archivos de imagen a causa de la función de archivo de imagen OpenCV imread no se pueden abrir en el camino china estimado en línea usando la función imdecode para abrir la imagen hay una gran cantidad de la gramática Éstos son algunos simples:

Método uno:

def cv_imread(file_path = ""):
    file_path_gbk = file_path.encode('gbk')        # unicode转gbk,字符串变为字节数组
    img_mat = cv2.imread(file_path_gbk.decode())  # 字节数组直接转字符串,不解码
    return img_mat

Segundo método:

import os
def cv_imread(file_path):
    root_dir, file_name = os.path.split(file_path)
    pwd = os.getcwd()
    if root_dir:
        os.chdir(root_dir)
    cv_img = cv2.imread(file_name)
    os.chdir(pwd)
    return cv_img

Método tres:

def cv_img_rgb(path):
    #用matplotlib的路径
    img=plt.imread(path)
    #因为opencv读取是按照BGR的顺序,所以这里转换一下即可
    img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    return img_rgb

Método cuatro:

def cv_imread(filePath):
    cv_img = cv2.imdecode(np.fromfile(filePath, dtype=np.uint8), -1)
    return cv_img

Sin embargo, estos métodos tienen un problema. archivo de imagen se lee hay problemas de fusión de color, si se trata de la imagen gris será imagen completamente diferente de la situación surgir. Hasta que encontré este método lo siguiente:

import cv2
import numpy as np
cv2.imdecode(np.fromfile("D:\\haha哈哈.png",dtype=np.uint8),,cv2.IMREAD_COLOR)

Leer archivos de imagen utilizando este método no sólo pueden leer archivos de imagen bajo la trayectoria de China y no aparece el fenómeno de distorsión.
Referencia:
[. 1] https://www.zhihu.com/question/67157462
[2] https://blog.csdn.net/u011311291/article/details/81457278

Publicado 59 artículos originales · ganado elogios 2 · Vistas 4667

Supongo que te gusta

Origin blog.csdn.net/lch551218/article/details/104565240
Recomendado
Clasificación