Modificar la calidad y resolución de la imagen por lotes (python)

Cómo utilizar OpenCV de Python para modificar la calidad y resolución de la imagen en lotes

Cuando el aprendizaje profundo crea conjuntos de datos, en la mayoría de los casos, no necesita imágenes de alta resolución como el conjunto de datos original. El siguiente programa utiliza bibliotecas Python y opencv para realizar el procesamiento de degradación de imágenes. Ayúdanos a modificar la calidad y resolución de las imágenes por lotes. Este artículo mostrará cómo utilizar la biblioteca OpenCV de Python para lograr esta función.

1. Instale la biblioteca OpenCV

Antes de comenzar, debemos asegurarnos de haber instalado Python y la biblioteca OpenCV. Si no ha instalado la biblioteca OpenCV, puede utilizar el siguiente comando para instalarla:

pip install opencv-python

2. Importe la biblioteca OpenCV y otras bibliotecas necesarias.

Antes de comenzar a escribir código, necesitamos importar la biblioteca OpenCV y otras bibliotecas necesarias:

import cv2
import os

3. Configure los directorios de entrada y salida.

Antes de comenzar a modificar por lotes la calidad y resolución de la imagen, debemos configurar los directorios de entrada y salida. El directorio de entrada es la ruta a la carpeta que contiene las imágenes a procesar y el directorio de salida es la ruta a la carpeta donde se guardan las imágenes procesadas. Podemos usar osla biblioteca para crear un directorio:

input_folder = 'input/'
output_folder = 'output/'

os.makedirs(output_folder, exist_ok=True)

4. Modificar la calidad y resolución de la imagen por lotes.

Ahora podemos comenzar a modificar la calidad y resolución de la imagen por lotes. Podemos cv2.imread()leer imágenes usando métodos, cv2.imwrite()guardar imágenes usando métodos y cv2.resize()modificar la resolución de la imagen usando métodos. Aquí hay un código de muestra:

for filename in os.listdir(input_folder):
    if filename.endswith('.jpg') or filename.endswith('.png'):
        image = cv2.imread(os.path.join(input_folder, filename))
        
        # 修改图像分辨率
        resized_image = cv2.resize(image, (800, 600))

        # 修改图像质量
        jpeg_file = os.path.join(output_folder, filename)
        cv2.imwrite(jpeg_file, resized_image, [int(cv2.IMWRITE_JPEG_QUALITY), 90])

El código anterior recorre todos los archivos de imagen en el directorio de entrada para determinar si terminan en '.jpg' o '.png'. Luego, use cv2.resize()el método para modificar la resolución de la imagen y use cv2.imwrite()el método para modificar la calidad de la imagen ajustando los parámetros al guardar la imagen cv2.IMWRITE_JPEG_QUALITY.

5. Conclusión

Al utilizar la biblioteca OpenCV de Python, podemos modificar fácilmente la calidad y resolución de las imágenes en lotes. Simplemente configure los directorios de entrada y salida y llame a las funciones correspondientes para procesar rápidamente datos de imágenes en lotes. Espero que este artículo le ayude a comprender y utilizar la biblioteca OpenCV de Python.

以下是一个小示例

import cv2
import os
address = r"C:\Users\lenovo\Desktop\paperNeed" # 存放原图片文件夹路径
list = os.listdir(address)
for i, file in enumerate(list):
    firstname = os.path.splitext(file)[0]
    typename = os.path.splitext(file)[1]
    os.rename("{}/{}".format(address, file), "{}/{}.jpg".format(address, i))
    newpath = address + "/"+"{}.jpg".format(i)

    cv2.namedWindow("Image")  # 创建窗口
    img = cv2.imread(newpath)
    cv2.imshow("Image", img)
    changepic = r"C:\Users\lenovo\Desktop\paperNeed2\{}.jpg".format(i) # 修改完质量的图片存放路径
    cv2.imwrite(changepic, img, [int(cv2.IMWRITE_JPEG_QUALITY), 10])

cv2.waitKey(0)
cv2.destroyWindow("Image")  # 关闭窗口

El principal código de cambio de calidad es:

 cv2.imwrite(changepic, img, [int(cv2.IMWRITE_JPEG_QUALITY), 10])
Diferentes formatos de imagen aplican diferentes parámetros.

Si el formato de imagen es .jpeg o .jpg, seleccione el parámetro cv2.CV_IMWRITE_JPEG_QUALITY y su valor es 0-100 (cuanto mayor sea el valor, mayor será la calidad de la imagen).
Si el formato de imagen es .webp, utilice el Parámetro cv2.CV_IMWRITE_WEBP_QUALITY, el valor 0-100
Si el formato de la imagen es formato .png Parámetro cv2.CV_IMWRITE_PNG_COMPRESSION, el valor es 0-9

Supongo que te gusta

Origin blog.csdn.net/m0_46114594/article/details/116069109
Recomendado
Clasificación