Serialización "Procesamiento de imágenes digitales-OpenCV/Python" (9) Lectura y guardado de imágenes de varios fotogramas

Serialización "Procesamiento de imágenes digitales-OpenCV/Python" (9) Lectura y guardado de imágenes de varios fotogramas


Enlace de compra con descuento de JD de este libro: https://item.jd.com/14098452.html
Columna de serie exclusiva de CSDN de este libro: https://blog.csdn.net/youcans/category_12418787.html

Insertar descripción de la imagen aquí


Capítulo 1 Operaciones básicas de imágenes

Para facilitar que los principiantes aprendan OpenCV-Python desde cero, este libro comienza con operaciones básicas como leer, guardar y mostrar imágenes, para que los lectores puedan usar y comprender cada rutina de este libro paso a paso.


1.5 Lectura y guardado de imágenes de varios fotogramas

Las imágenes de fotogramas múltiples se refieren a guardar múltiples imágenes o datos de fotogramas en un solo archivo, también llamadas imágenes de varias páginas o secuencias de imágenes, y se utilizan principalmente para operaciones en colecciones de imágenes relacionadas con el tiempo o la escena. Por ejemplo, las imágenes de series de tiempo son imágenes dinámicas (animaciones) que pueden lograr efectos de animación simples, y las imágenes de tomografía computarizada (CT) son imágenes de secuencia espacial. Los formatos de imágenes de varios fotogramas más utilizados incluyen GIF, PNG y TIFF.

La función cv.imreadmulti se utiliza para leer varias imágenes del archivo de imagen de varios cuadros especificado. La función cv.imwritemulti se utiliza para guardar varias imágenes en un archivo de imagen de varios cuadros específico.

prototipo de función

cv.imreadmulti(nombre de archivo[, mats=Ninguno, banderas=IMREAD_ANYCOLOR]) → retval, mats cv.imreadmulti
(nombre de archivo, inicio, recuento[, mats=Ninguno, banderas=IMREAD_ANYCOLOR]) → retval, mats
cv.imwritemulti(nombre de archivo, img[,]) → recuperación


Descripción de parámetros

  • nombre de archivo: lea o escriba la ruta del archivo y el nombre del archivo de una imagen de varios cuadros, incluida la extensión.
  • mats: el valor de retorno, el vector del archivo de imagen leído, es un tipo de lista y los elementos de la lista son matrices Numpy multidimensionales.
  • img: el archivo de datos de la imagen escrita de varios cuadros es un tipo de lista y los elementos de la lista son matrices Numpy multidimensionales.
  • banderas: modo de lectura de imágenes, opcional, el valor predeterminado es IMREAD_ANYCOLOR.
  • inicio: el índice del cuadro para comenzar a leer, es decir, omitir el cuadro de la imagen anterior.
  • recuento: el número de páginas para leer marcos de imágenes.
  • retval: valor de retorno, indicador de lectura exitosa, valor booleano.

Nota:
(1) En esta función, los tapetes de valor de retorno para leer archivos de imágenes de múltiples cuadros y el archivo de datos img para escribir imágenes de múltiples cuadros son de tipo Lista. Los elementos de la lista son matrices Numpy multidimensionales, es decir, cada elemento de la lista mats[i] es una imagen bidimensional.
(2) El tamaño de cada cuadro en una imagen de varios cuadros puede ser igual o diferente.
(3) OpenCV actualmente no admite el formato GIF y se recomienda utilizar el formato TIFF para procesar imágenes de varios fotogramas.


[Rutina 0108] Lectura y guardado de imágenes multicuadro (animaciones)

Esta rutina se utiliza para leer y guardar imágenes de varios fotogramas (animaciones).


# 【0108】多帧图像(动图)的读取和保存
import cv2 as cv
from matplotlib import pyplot as plt

if __name__ == '__main__':
    # 读取单幅图像,支持 BMP、JPG、PNG、TIFF 等常用格式
    img1 = cv.imread("../images/FVid1.png")  # 读取彩色图像 FVid1.png
    img2 = cv.imread("../images/FVid2.png")  # 读取彩色图像 FVid2.png
    img3 = cv.imread("../images/FVid3.png")  # 读取彩色图像 FVid3.png
    img4 = cv.imread("../images/FVid4.png")  # 读取彩色图像 FVid4.png
    imgList = [img1, img2, img3, img4]  # 生成多帧图像列表

    # 保存多帧图像文件
    saveFile = "../images/imgList.tiff"  # 保存多帧图像文件的路径
    ret = cv.imwritemulti(saveFile, imgList)
    if (ret):
        print("Image List Write Successed in {}".format(saveFile))
        print("len(imgList): ", len(imgList))  # imgList 是列表,只有长度没有形状

    # 读取多帧图像文件
    imgMulti = cv.imreadmulti("../images/imgList.tiff")  # 读取多帧图像文件
    print("len(imgList): ", len(imgList))  # imgList 是列表
    # 显示多帧图像文件
    for i in range(len(imgList)):
        print("\timgList[{}]: {}".format(i, imgList[i].shape))  # imgList[i] 是多维 Numpy 数组
        cv.imshow("imgList", imgList[i])  # 在窗口 imgList 中逐帧显示
        cv.waitKey(1000)
    cv.destroyAllWindows()

Insertar descripción de la imagen aquí


[El capítulo 1 está serializado]

Enlace de compra con descuento de JD para este libro: https://item.jd.com/14098452.html


Declaración de derechos de autor:
youcans@xupt trabajo original, las reimpresiones deben estar marcadas con el enlace original: (https://blog.csdn.net/youcans/article/details/133325652)
Copyright 2023 youcans, XUPT
Creado: 2023-09-28

Bienvenido a seguir la columna serial exclusiva de CSDN de este libro
"Procesamiento de imágenes digitales-OpenCV/Python": https://blog.csdn.net/youcans/category_12418787.html

Supongo que te gusta

Origin blog.csdn.net/youcans/article/details/133325652
Recomendado
Clasificación