-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.atman.pl!not-for-mail
From: Robert Gomulka <c...@e...pl>
Newsgroups: pl.rec.foto.cyfrowa
Subject: Re: Soft do statystyki ogniskowych
Date: Mon, 28 Jun 2010 21:04:24 +0200
Organization: ATMAN
Lines: 68
Message-ID: <i0arnp$btn$1@node1.news.atman.pl>
References: <i0a95a$bun$1@inews.gazeta.pl>
NNTP-Posting-Host: chello089072251188.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit
X-Trace: node1.news.atman.pl 1277751865 12215 89.72.251.188 (28 Jun 2010 19:04:25
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 28 Jun 2010 19:04:25 +0000 (UTC)
User-Agent: KNode/0.10.9
Xref: news-archive.icm.edu.pl pl.rec.foto.cyfrowa:860064
[ ukryj nagłówki ]de Fresz wrote:
[cut]
W ramach wprawek Pythonowych prosty skrypt:
#!/usr/bin/python
# TODO - percentage counter
# TODO - recursive traversal
# TODO - error handling
# TODO - values sorting
# TODO - values formatting
import pyexiv2
import os
import sys
files = os.listdir(sys.argv[1])
exposures = {}
focals = {}
isos = {}
count = 0
for jpeg in files:
count += 1
image = pyexiv2.Image(jpeg)
image.readMetadata()
expstr = str(image['Exif.Photo.ExposureTime'])
if expstr in exposures:
exposures[expstr] += 1
else:
exposures[expstr] = 1
focstr = str(image['Exif.Photo.FocalLength'])
if focstr in focals:
focals[focstr] += 1
else:
focals[focstr] = 1
isostr = str(image['Exif.Photo.ISOSpeedRatings'])
if isostr in isos:
isos[isostr] += 1
else:
isos[isostr] = 1
print "Exposures"
expkeys = exposures.keys()
for expkey in expkeys:
print expkey, exposures[expkey], "/", count
print
print "Focal lenghts"
fockeys = focals.keys()
for fockey in fockeys:
print fockey, focals[fockey], "/", count
print
print "Iso values"
isokeys = isos.keys()
for isokey in isokeys:
print isokey, isos[isokey], "/", count
Brzydki, ale w podstawowej wersji w bardzo podstawowym zakresie działa :)
Wymaga Pythona z bibliotekami. Wywołuje się go z jednym parametrem -
katalogiem do przeanalizowania. Nie działa rekursywnie.
Z pewnością na sieci znajdziesz lepsze implementacje, ta powstała wyłącznie
jako ćwiczenie.
Pozdrawiam,
Robert
Następne wpisy z tego wątku
- 28.06.10 19:12 de Fresz
- 28.06.10 19:54 Mikolaj Machowski
- 29.06.10 14:16 de Fresz
- 30.06.10 16:40 JA
- 01.07.10 09:12 de Fresz
- 01.07.10 14:55 JA
Najnowsze wątki z tej grupy
- Trochę NTG - Vegas Pro
- Nikon D5500 i wyzwalanie migawki
- Canon 550D
- EOS 600D i balans bieli w filmach
- EOS 90D i sentymenty
- Skanowanie: Canon MG2550S vs HP OfficeJet 6950
- czas exif a czas modyfikacji pliku
- karta SD po formacie odzyskiwanie zdjęć i filmów
- Chess
- Vitruvian Man - parts 7-11a
- Eltec nie zyje?
- Steve McCurry
- Light - lajkowe klasyki od Chinczykow
- Forum o Sony serii A (alfa)?
- obrobka RAW na konputerze
Najnowsze wątki
- 2025-03-15 Na co komu okna
- 2025-03-15 Mój elektryk
- 2025-03-15 Fejk muzyczny czy nie fejk
- 2025-03-15 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-15 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-03-15 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-03-15 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-03-15 Warszawa => Java Full Stack Developer (Angular2+ experience) <=
- 2025-03-15 Warszawa => Java Full Stack Developer (Angular2+) <=
- 2025-03-15 KOMU w RP3 pasuje "Rumuńska łatwość gmerania w wyborach" i dlaczego nie PO-Trzaskanym?
- 2025-03-15 China-Kraków => Key Account Manager IT <=
- 2025-03-14 Spalił się autobus :-)
- 2025-03-14 Policjanci z Piątku
- 2025-03-14 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-03-14 Warszawa => Account Manager - Sprzedaż Usług Rekrutacyjnych <=