enumerar(), dibujo plt, guardar json, cv2.resize, línea base

1. La función enumerate() se utiliza para combinar un objeto de datos transitable (como una lista, tupla o cadena) en una secuencia de índice, al tiempo que enumera los datos y los subíndices de datos. Generalmente se utiliza en bucles for.
enumerar (secuencia, [inicio = 0])

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>> tuple(enumerate(seasons, start=1))
((1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter'))

2.Dibujo

import matplotlib.pyplot as plt
import numpy as np

 x = np.linspace(-2, 6, 50)
    y1 = x + 3  # 曲线 y1
    y2 = 3 - x  # 曲线 y2
    plt.figure()  # 定义一个图像窗口
    plt.plot(x, y1)  # 绘制曲线 y1
    plt.plot(x, y2)  # 绘制曲线 y2
    plt.title("test")
    plt.show()

Insertar descripción de la imagen aquí

	plt.imshow(img)
    plt.title("test")
    plt.show()

Insertar descripción de la imagen aquí
3. La función de json.dumps es convertir el tipo de diccionario al tipo de cadena en formato json
Parámetros: (1) sort_keys le dice al codificador que genere de acuerdo con la clave del diccionario (a a z).
(2) El parámetro de sangría se muestra con sangría según el formato de los datos, lo que hace que su lectura sea más clara. El valor de sangría representa el espacio sangrado
(3) Para generar correctamente el chino, puede especificar asegurar_ascii=False:

#将label写进json
def write_json(cla_dict,json_path):#要写入的label,json路径
    json_str = json.dumps(cla_dict, indent=4)  # 编码成json格式
    with open(json_path, 'w') as json_file:  # 写进去
        json_file.write(json_str)
#从json读出label
def read_json(json_path): #json路径
    assert os.path.exists(json_path), "file: '{}' dose not exist.".format(json_path)
    with open(json_path, "r") as f:
        class_indict = json.load(f)
    return class_indict

Ejemplo:

		flower_list = train_dataset.class_to_idx  # ----大概是已经通过数据集已经分类好的文件名确定的图片类别
        cla_dict = dict((val, key) for key, val in flower_list.items())  # 将key,value值反过来,已达到通过索引找到分类的目的
        # label信息写入json
        json_path = './class_indices.json'
        write_json(cla_dict,json_path)

class_indices.json

{
    
    
    "0": "daisy",
    "1": "dandelion",
    "2": "roses",
    "3": "sunflowers",
    "4": "tulips"
}

4.cv2.resize función
cambiar tamaño es una función en la biblioteca opencv, que desempeña principalmente la función de escalar imágenes.
Ejemplo: el siguiente código puede convertir la imagen original en una imagen con un ancho y largo de 300 y 300 respectivamente. El ancho y el alto se pueden especificar arbitrariamente, independientemente del tamaño.
interpolación: Esta es la forma de especificar la interpolación. Después de escalar la imagen, los píxeles deben recalcularse. Este parámetro se utiliza para especificar la forma de recalcular los píxeles. Existen los siguientes: INTER_NEAREST - interpolación del vecino más cercano INTER_LINEAR - doble
línea
Sexual interpolación, si no especifica el último parámetro, este método se utiliza de forma predeterminada
INTER_CUBIC: interpolación bicúbica dentro de una vecindad de 4x4 píxeles
INTER_LANCZOS4: interpolación de Lanczos dentro de una vecindad de 8x8 píxeles

El método de interpolación anterior se utiliza para acercar y alejar. Para conocer métodos de interpolación específicos, consulte Procesamiento de imágenes:
ejemplo de cinco métodos de interpolación:

import cv2 as cv

width = 300
height = 300
img = cv.imread('E:\\both.png')# 原图224*224
img = cv.resize(img, (width, height))# 默认使用双线性插值法

cv.imshow("img", img)
cv.waitKey(0)
cv.destroyAllWindows()

Entonces, ¿no sería casi lo mismo cambiar el tamaño que los métodos funcionales de muestreo ascendente y descendente? ? ? ?
5.
Línea base Línea base simplemente significa "objeto de referencia" En cuanto a de dónde proviene el sistema de línea base y cuál es su rendimiento, no existe un estándar seguro.

Supongo que te gusta

Origin blog.csdn.net/weixin_44040169/article/details/127994791
Recomendado
Clasificación