Seite 1 von 1

Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:03
von fisel_b90
Hallihallo,

ich hoffe ihr könnt mir bei einem Problem helfen. Ich habe einen Ordner den ich gern mit Python zwecks Template Matching auslesen möchte.
In dem Ordner befinden sich Bilddateien (insgesamt 8 im TIFF-Format). Wie kann ich den Ordner inkl. Bildern auslesen mit Python? Kann mir
da jemand helfen?

Mein bisheriger Quellcode sieht wie folgt aus:

Code: Alles auswählen

import cv2
import numpy as np
import skimage.io as skio
from matplotlib import pyplot as plt
img_rgb = cv2.imread('20170621_092127_0f28/beispiel.jpg')
print img_rgb.shape[0:2]
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('20170621_092127_0f28/template2.jpg',0)
w, h = template.shape[0:2]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
    cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv2.imwrite('neu.jpg',img_rgb)
In dem Quellcode ist jetzt nur eine Bilddatei sowie ein Template eingelesen. Das funktioniert auch dann soweit. Hatte überlegt ob das vielleicht über eine for-Schleife funktioniert...?

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:14
von __deets__
Ja - wenn man Dinge mehrmals machen moechte, muss man eine Schleife verwenden. Und wenn man mit Dateien arbeiten moechte, dann bietet sich das os-Modul an, zB mit der Funktion os.listdir(). Oder das glob-Modul.

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:16
von BlackJack
@fisel_b90: Das klingt nach einer ``for``-Schleife und dem `glob`-Modul.

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:29
von fisel_b90
Okay dann werde ich mich da mal durchlesen müssen. Hatte jetzt mal nebenbei mich kurz damit hier beschäftigt:

Code: Alles auswählen

import os
a ="Pfad des Ordners"
os.listdir(a)
Dann sollte er mir doch den Inhalt des Ordners anzeigen oder? Weil da tut sich gar nichts bei mir :( Bin jetzt aber auch kein Python-Profi...
Muss ich dabei noch auf etwas anderes achten?

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:30
von __deets__
Und noch eine inhaltliche Anmerkung: es ist unueblich einen festen Schwellenwert fuer Template Matching zu verwenden. Stattdessen sucht man sich den Punkt der groessten/kleinsten Uebereinstimmung raus mit cv2.minMaxLoc. Welche dann die richtige ist haengt vom verwandten Verfahren zur Uebereinstimmungsbestimmung ab.

http://docs.opencv.org/2.4/modules/core ... .minMaxLoc

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:31
von __deets__
Du sagst nicht, wie du das ausfuehrst. Wenn du das einfach in dein Skript geschrieben hast, dann produziert das natuerlich keine Ausgabe. Oder wozu sind deine prints sonst im Skript?

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:42
von fisel_b90
Gilt das mit "cv2.minMaxLoc" auch für Template Matching mit mehreren Templates, die eingebunden werden...?

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:47
von __deets__
Natuerlich.

Re: Ordner mit Bilddateien auslesen

Verfasst: Donnerstag 6. Juli 2017, 15:49
von fisel_b90
Hm okay. Danke.