[英]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.