Hallo Ich habe eine recht üppige Bildersammlung. Nun möchte ich alle Bilder suchen, die mit einer bestimmten Kamera aufgenommen wurden. Ist sowas möglich?
Befinden sich die Bilder alle in einem Ordner? Dann kannst du die Spalte für Kameramodell Anzeigen lassen und danach sortieren.
da das Kameramodell meistens im Klartext im Header eines jpegs gespeichertt ist, kann man einfach alle dateien nach genau diesem String durchsuchen lassen, mit einem Tool, das Stringsuche kann.
Die Python Lösung würde ungefähr so aussehen: Den Bilderordner mit os.walk rekursiv durchlaufen, mit pyexif (http://pyexif.sf.net/) jedes Bild auf das Kameramodell abklopfen, wenn es das richtige ist, den Dateinamen ausgeben. Oder die Datei wohin auch immer verlinken.
Festplatte nach Bildern durchsuchen (mit der Windows Suche) und dann nach Spalte Kameramodell sortieren?
Sofern die Bilder noch den originalen DAteinamen haben, kann man auch einfach danach sortieren.
Jaaaaaaa, dann hat man 3 Kameramodelle und alle fangen mit PICT.... an!
Hallo! Mit dem Freeware Programm XnView (auch als portable Version) kann man Bilder nach verschiedenen Kriterien durchsuchen. Unter Ansicht->Suchen: EXIF anhacken und Kameramodell auswählen. Hoffe dir geholfen zu haben. LG matrixx
1. Für simple Fälle reicht suche nach DCF*, SDC* oder wie die Bilder dieser Kamera heißen... 2.Das Tool Exifer zeigt noch etwas mehr wie Belichtungszeit usw.
Christian L. schrieb: > Jaaaaaaa, dann hat man 3 Kameramodelle und alle fangen mit PICT.... Dann sind die Kameras alle vom gleichen Hersteller. Und wenn die Bilder alle in einem Verzeichnis sind, dann sind ehn nur noch die zuletzt gespeicheten vorhanden.
ich versuch es im Moment mit der string-suche (vielen Dank für den Tipp) bzw. mit dem befehl grep. Das scheint mir am sichersten, doch dauert es verdammt lang... Gibt es eine möglichkeit zu prüfen, wieviel % bereits durchsucht worden sind bzw. welches Verzeichnis grep momentan durchsucht?
SorgenKind schrieb: > bzw. mit dem befehl grep. Dann mach doch grep ... > ergebnis.txt und geh Kaffeetrinken
> Befinden sich die Bilder alle in einem Ordner? > Dann kannst du die Spalte für Kameramodell Anzeigen lassen und danach > sortieren. Mit welcher Software?
Rufus t. Firefly schrieb: > kann der Windows-Explorer schon seit längerem Man muß nur oben die RICHTIGE Ansicht wählen/Haken ergänzen.
Christian L. schrieb: > Befinden sich die Bilder alle in einem Ordner? Geht auch wenn sie in mehreren Ordnern sind. Einfach den Übergeordneten Ordner durchsuchen nach "*.jpg, *.jpeg" und dann die Detailansicht auswählen und Spalten anpassen (Rechte Maustaste auf die Spalten => Kameramodell, bzw. weitere)
oszi40 schrieb: > Dann mach doch grep ... > ergebnis.txt und geh Kaffeetrinken muss der Telnet client während der ganzen Suche immer laufen? ich logge mich beim Server ein und führe aus: grep -i -r suchmich > resultat.txt wenn ich den client aber schließe, wird die Suche nicht weitergeführt, kann das sein?
Ja, das ist so. Schreib ein & hinter die Zeile, dann wird der Prozess auch nach Deiner Abmeldung zuende geführt.
> Das kann der Windows-Explorer schon seit längerem.
Ach so es geht hier um Windows? Diese Info habe ich jetzt wohl
überlesen.
> Ja, das ist so. Schreib ein & hinter die Zeile, dann wird der Prozess > auch nach Deiner Abmeldung zuende geführt. Dazu würde ich eher nohup verwenden.
g.a.s.t. schrieb: > Ach so es geht hier um Windows? Diese Info habe ich jetzt wohl > überlesen. Da nicht gesagt wurde, um welches OS es geht, ist von Windows auszugehen, weil dessen Nutzer diese Information sehr gerne komplett unterschlagen. Leute, die Linux oder sonstige Systeme einsetzen, wissen eher, daß es bei Hilfsanfragen hilfreich ist, das mitzuteilen. Ich hätte auch darauf hinweisen können, wie man mit Spotlight danach suchen kann, nur dürfte der Nutzerkreis von OS X hier recht überschaubar sein. > Dazu würde ich eher nohup verwenden. Das kann man natürlich auch.
ok, ich hab heute folgendes ausgeführt:
1 | nohup grep -i -r -o kenox * > resultat.txt & |
dauraufhin wurde sofort die datei resultat.txt angelegt. Diese ist nun nach einigen Stunden aber immer noch leer. Als ich neulich die selbe Suche mit Ausgabe über das Telnet-Terminal startete, wurden die ersten Dateine nach etwa 2 Stunden gefunden. Ich bin nicht sicher, ob die Suche noch läuft bzw. korrekt abläuft. Die Abfrage mit
1 | ps
|
gibt folgendes aus:
1 | Server> ps |
2 | PID USER VSZ STAT COMMAND |
3 | 1 root 2940 S init |
4 | 2 root 0 SW [kthreadd] |
5 | 3 root 0 SW [ksoftirqd/0] |
6 | 4 root 0 SW [events/0] |
7 | 5 root 0 SW [khelper] |
8 | 8 root 0 SW [async/mgr] |
9 | 85 root 0 SW [sync_supers] |
10 | 87 root 0 SW [bdi-default] |
11 | 88 root 0 SW [kblockd/0] |
12 | 94 root 0 SW [ata/0] |
13 | 95 root 0 SW [ata_aux] |
14 | 110 root 0 SW [rpciod/0] |
15 | 118 root 0 SW< [kswapd0] |
16 | 119 root 0 SW [nfsiod] |
17 | 271 root 0 SW [scsi_eh_0] |
18 | 273 root 0 SW [scsi_eh_1] |
19 | 295 root 0 SW [mtdblockd] |
20 | 319 root 0 SW [kstriped] |
21 | 330 root 0 SW [md0_raid1] |
22 | 336 root 0 SW [md1_raid1] |
23 | 421 root 0 SW [kjournald] |
24 | 512 root 0 SW [khubd] |
25 | 549 root 0 SW [ksnapd] |
26 | 585 root 0 SW [crypto/0] |
27 | 688 root 0 SW [crypto] |
28 | 689 root 0 SW [crypto_ret] |
29 | 751 root 0 SW [ecryptfs-kthrea] |
30 | 1074 root 2940 S /sbin/syslogd -S |
31 | 1076 root 2940 S /sbin/klogd |
32 | 1115 root 0 SW [md2_raid1] |
33 | 1340 root 12636 S < /usr/syno/bin/findhostd |
34 | 1364 root 0 SW [kjournald] |
35 | 1530 admin 33756 S /usr/syno/pgsql/bin/postgres -D /var/services/pgsql |
36 | 1533 admin 33756 S postgres: writer process |
37 | 1534 admin 33756 S postgres: wal writer process |
38 | 1624 root 8928 D /usr/syno/bin/scemd |
39 | 1890 root 0 SW [usbhid_resumer] |
40 | 1961 root 2944 S /sbin/getty 115200 console |
41 | 1972 root 8720 S /usr/syno/sbin/hotplugd |
42 | 1985 root 5400 S /usr/sbin/inetd |
43 | 1992 root 5400 S /usr/sbin/crond |
44 | 2259 root 12792 S /usr/syno/sbin/scheduler |
45 | 2268 admin 34840 S postgres: admin download [local] idle |
46 | 2289 root 20936 S N /usr/syno/sbin/synoindexd |
47 | 2294 root 9084 S N /usr/syno/bin/synomkthumbd |
48 | 2355 root 16080 S /usr/syno/sbin/nmbd -D |
49 | 2357 admin 34804 S postgres: admin photo [local] idle |
50 | 2408 root 19640 S /usr/syno/sbin/smbd -D |
51 | 2410 root 19640 S /usr/syno/sbin/smbd -D |
52 | 2459 root 7800 S /usr/syno/sbin/atalkd |
53 | 2473 1 1584 S /sbin/portmap |
54 | 2475 root 0 SW [lockd] |
55 | 2476 root 0 SW [nfsd] |
56 | 2479 root 1696 S /usr/sbin/statd |
57 | 2482 root 1744 S /usr/sbin/mountd -p 892 |
58 | 2504 root 9080 S N /usr/syno/sbin/synomkflvd |
59 | 2537 root 3908 S /usr/syno/sbin/sshd |
60 | 2553 root 5508 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
61 | 2641 root 5668 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
62 | 2688 root 11560 S /usr/syno/sbin/mDNSResponder -f /tmp/mDNSResponder.c |
63 | 2925 root 8852 S /usr/syno/sbin/cnid_metad |
64 | 2931 root 15132 S /usr/syno/sbin/afpd -c 256 -g guest -n Server AFPSer |
65 | 3041 root 5660 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
66 | 4954 root 5660 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
67 | 4956 root 5652 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
68 | 4957 root 5508 S /usr/syno/apache/bin/httpd -DREDIRECT_USER -f /usr/s |
69 | 7105 admin 2948 R grep -r -i -o kenox Data Media Safe |
70 | 20332 root 0 SW [flush-9:0] |
71 | 22705 root 6520 S sshd: admin [priv] |
72 | 22839 admin 6520 S sshd: admin@pts/0 |
73 | 22840 admin 5404 S -sh |
74 | 23164 admin 5404 R ps |
75 | 23165 root 0 RW [khelper] |
76 | 32138 root 19832 S /usr/syno/sbin/smbd -D |
Demnach scheint die Suche ja noch zu laufen. Wird resultat.txt erst am Ende der Suche aktualisiert?
Suche erst mal einer Muster-Datei die wirklich da ist. Wenn Du nur nach kenox suchst und kenox gibt es nicht, dann wird es länger dauern... Bei kenox sind wahrscheinlich mehr Treffer (wenn Deine Rechte reichen).
Sorry bei kenox sollte ein Stern gleich dahinter sein um auch kenox123 zu finden. Leider wurde hier auf der Webseite der Text anders dargestellt als von mir eingetippt. ""kenox*""
der Stern sollte ja für die Dateie stehen, die durchsucht werden sollen oder?
Ja, das ist richtig... Die Lücke gehört dahin... Hast du ein Bild, das sicher mit der Kamera gemacht wurde? Dann probier doch einfach erstmal `grep -iro kenox dein_bild.jpg`.
Probier's mal damit:
1 | find -iregex '.*\.\(jpeg\|jpg\|jpe\)' | |
2 | while read f; do head -c2000 "$f" | grep -iq kenox && echo "$f"; done |
Das sollte deutlich schneller gehen, da - nur Dateien mit der Endung .jpeg, .jpg und .jpw (case-insensitiv) und - von diesen nur die ersten 2000 Bytes gegrept werden. Im zweiten Punkt wird davon ausgegangen, dass der EXIF-Kamerahersteller- eintrag ziemlich am Anfang der Datei steht, was normalerweise auch der Fall ist. Besser wäre es allerdings, die Suche nicht mit grep, sondern einem speziellen EXIF-Tool zu machen. Damit wird auch verhindert, dass der Kamerastring irrtümlicherweise innerhalb der binären Bilddaten gefunden wird.
Yalu X. schrieb: > Probier's mal damit: > find -iregex '.*\.\(jpeg\|jpg\|jpe\)' | > while read f; do head -c2000 "$f" | grep -iq kenox && echo "$f"; done > > Das sollte deutlich schneller gehen, da > > - nur Dateien mit der Endung .jpeg, .jpg und .jpw (case-insensitiv) und > > - von diesen nur die ersten 2000 Bytes gegrept werden. Dafür wird für jede Datei ein neues grep gestartet. > Im zweiten Punkt wird davon ausgegangen, dass der EXIF-Kamerahersteller- > eintrag ziemlich am Anfang der Datei steht, was normalerweise auch der > Fall ist. Besser wäre es allerdings, die Suche nicht mit grep, sondern > einem speziellen EXIF-Tool zu machen. Damit wird auch verhindert, dass > der Kamerastring irrtümlicherweise innerhalb der binären Bilddaten > gefunden wird. Mit exif (also dem Tool) ginge das. Das müßte dann so gehen: [Code] find -iregex '.*\.\(jpeg\|jpg\|jpe\)' | while read f; do [ `exif -mt0x0110 $f` = "kenox" ] && echo $f; done [Code] (0x0110 ist der Code für das Kamera-Modell in den EXIF-Daten). Ggf. "kenox" noch durch den exakten und kompletten Modellnamen der Kamera ersetzen. Das kann man erfahren, indem man exif einfach nur mit einem Dateinamen als einzigen Parameter aufruft.
Also mit Windows wärst du jetzt (schon lange) fertig.
Thomas schrieb: > schnell fertig. Der große Unterschied ist: ob man nur schnell den DateiNAMEN oder mühsam den DateiINHALT (genauer gesagt die exif-Daten) vergleicht. Da wäre MS auch nicht viel schneller beim Suchen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.