簡體   English   中英

如何在 Python 中保存 ppm 圖像的 png 副本

[英]How to save png copies of ppm images in Python

我有一個裝滿ppm圖像的文件夾,我想保存它們的png副本。

我怎么做?

我嘗試執行以下代碼,但沒有任何反應。

import cv2
import numpy as np
import glob
import sys
import os.path

from os.path import isfile,join 
from PIL import Image

target_path = '/Users/lfw/test'
trg = os.listdir(target_path)
count = 0
 for i in trg:
  fullpath = os.path.join(target_path ,i)
  if os.path.isfile(fullpath): 
  im = Image.open(fullpath)
  im.save(str(count) + 'output.png')
  count = count + 1

並不需要編寫任何Python,您只需在終端中使用ImageMagick ,就可以在大多數Linux發行版中安裝並適用於macOS和Windows:

magick mogrify -format png *ppm

如果要將輸出文件放在其他文件夾中,請使用:

mkdir -p newFolder
magick mogrify -format png -path newFolder *ppm

如果您有許多文件要做,則可以與GNU Parallel並行執行,如下所示:

parallel convert {} {.}.png ::: *ppm

如果您使用ImageMagick的 v6或更早版本,它將變為:

mogrify -format png *ppm

假設您在桌面上有一個名為test的根文件夾,其中包含my_script.py和一個名為input的子文件夾,其中存儲了所有ppm文件。

您可以使用以下代碼為每個ppm圖像保存png副本。

my_script.py

import os 
import cv2 
from glob import glob 

cwd = os.getcwd()
input_dir = os.path.join(cwd, "input\\*.ppm")    
ppms = glob(input_dir)   

counter = 1 

for ppm in ppms: 
    cv2.imwrite(str(counter)+".png", cv2.imread(ppm))
    counter += 1 

注意:我以特殊的方式編寫了代碼,讓您可以保留舊的ppm文件並創建原始圖像的全新png副本。 如果您想用png實際替換 ppm,我可以編輯答案以使其完成所需的工作。

from PIL import Image 
import glob, os
directory = r'D:\DATASET\...'
for infile in glob.glob(os.path.join(directory, "*.ppm")):
    file, ext = os.path.splitext(infile)
    im = Image.open(infile)
    im.save(file + ".png")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM