Обработка, а затем сохранение изображений в формате l oop in python - PullRequest
0 голосов
/ 07 марта 2020

Я новичок в программировании, и я хотел бы спросить вас, как я могу написать свой код, чтобы он считывал все pi c в каталоге, обрабатывал его один за другим, а затем сохранял выходные изображения в другой каталог.

%pylab
%matplotlib inline
import cv2
import glob
import os
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt


filename = [img for img in glob.glob("outp/*.png")]
flist=sorted(filename)

images = []
for img in flist:
    n = cv2.imread(img, 0)
    images.append(n)
    blur = cv.GaussianBlur(n, (9,9), 0)
    cv.imwrite(flist, blur) #definitly wrong!! but idk how to do it

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Вам не нужно создавать список всех пиксельных данных всех изображений в памяти, это просто пустая трата памяти. Итак, удалите строки:

images = []

и

images.apoend(...)

Затем измените imwrite(), чтобы перезаписать текущее изображение:

cv2.imwrite(img,blur)

Вот более полная версия:

#!/usr/bin/env python3

import cv2
import glob
import os
import numpy as np
import cv2

# Go to where the images are
os.chdir('outp')

# Get list of filenames to convert
files = glob.glob("*.png")

for file in files:
    n = cv2.imread(file, 0)
    blur = cv2.GaussianBlur(n, (9,9), 0)
    cv2.imwrite('blurred_' + file, blur) 
0 голосов
/ 07 марта 2020

Попробуйте так: cv2.imwrite("mypicture.jpg", gray[y:y+h,x:x+w])

...