[Python] Cómo leer y mostrar imágenes de un solo canal

cada blog, cada lema: Simplemente vive tu vida porque no vivimos dos veces.

0. Prefacio

En el aprendizaje profundo, específicamente en la segmentación semántica, las etiquetas suelen ser de un solo canal. La siguiente es una introducción al método general de lectura y visualización.
Más imágenes de conocimientos relacionados se refieren a conocimientos básicos

1. Texto

1.1 Método 1: matplotlib

import matplotlib.pyplot as plt
import matplotlib.image as mp

def show_img(path):
    """ 读取并展示图片

    :param path: 图片路径
    :return:
    """
    img = mp.imread(path)
    print('图片的shape:', img.shape)
    plt.imshow(img)
    plt.show()


show_img(y_path)

resultado:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

1.2 Método dos: opencv

def image_normalization(img, img_min=0, img_max=255):
    """数据正则化,将数据从一个小范围变换到另一个范围
        默认参数:从(0,1) -> (0,255)

    :param img: 输入数据
    :param img_min: 数据最小值
    :param img_max: 数据最大值
    :return: 返回变换后的结果结果
    """
    img = np.float32(img)
    epsilon = 1e-12
    img = (img - np.min(img)) * (img_max - img_min) / ((np.max(img) - np.min(img)) + epsilon) + img_min

    return img


def show_img3(path):
    """ 利用opencv 读取并显示单通道图片

    :param path: 图片路径
    :return:
    """
    # 读取图片
    img = cv.imread(path, cv.IMREAD_UNCHANGED)
    # 将图片的值从一个小范围 转换到大范围
    img = image_normalization(img)
    # 改为uint8型
    img = img.astype('uint8')
    # 显示
    cv.imshow('single channel', img)
    cv.waitKey(0)


show_img3(y_path)

Inserte la descripción de la imagen aquí

referencias

[1] https://blog.csdn.net/weixin_39190382/article/details/105917690
[2] https://www.jb51.net/article/102981.htm

Supongo que te gusta

Origin blog.csdn.net/weixin_39190382/article/details/113615763
Recomendado
Clasificación