Ich versuche ein Programm über eine Sequenz von 60 Frames (in einer TIFF-Datei) laufen zu lassen und einen Rauschreduzierungsfilter (Median) anzuwenden, um die Frames aufzuräumen Bit vor der Analyse. Jedoch gibt mein Programm (das es Bild für Bild aufnimmt) ein Einzelbild-TIFF aus; Warum das? Wie könnte ich mich darum kümmern?Tiff-Median-Filter exportiert als Einzelbild OpenCV Python
from PIL import Image
import cv2
import numpy as np
im = Image.open('example_recording.tif').convert('L')
im.save('greyscale_example.tif') #converts to greyscale
width,height = im.size
image_lookup = 0
class ImageSequence:
def __init__(self, im):
self.im = im
def __getitem__(self, ix):
try:
if ix:
self.im.seek(ix)
return self.im
except EOFError:
raise IndexError # if end of sequence
for frame in ImageSequence(im):
imarray = np.array(frame)
Blur = cv2.medianBlur(imarray,5)
frame = Image.fromarray(Blur)
im.save('corrected.tif')
Haben Sie eine Beispieldatei? Meinst du, du willst ein einzelnes Bild, das ist der Median aller Bilder in einer einzigen Datei? –
Nein, ich versuche, einen Medianfilter auf jeden Frame anzuwenden, um das Rauschen eines kurzen Films herauszufiltern. Ich habe eine Beispieldatei, aber um sie überall hochzuladen, würde sowieso eine Formatkonvertierung nach gif nötig sein; Verdammtes Ding ist fast 600 MB (kann aber, wenn es hilft). Das Endergebnis sollte eine einzelne Datei-TIFF-Sequenz von 60 Frames sein, wobei auf jeden einzelnen ein Median-Filter angewendet wird. –