Live Histogramm für Desktop

Berniyh

Grand Admiral Special
Mitglied seit
29.11.2005
Beiträge
5.203
Renomée
217
Hi,

ich hab da mal eine sehr spezielle Frage... ;)

Es geht darum, dass ich einen Computer habe, auf dem in einem Programm ein Livebild einer Kamera angezeigt wird (was für eine Kamera das ist weiß ich leider nicht genau).
Auf diesem Bild möchte ich Helligkeitsunterschiede bestimmen können, allerdings sind die lokalen Unterschiede sehr gering. Als letzten Ausweg würde ich es mit einer Histogrammauswertung versuchen.
Mit der statischen Methode ist das relativ simpel: Screenshot machen, in ein Bildbearbeitungsprogramm laden und Histogramm auslesen lassen.
Jetzt die Frage: Gibt es auch Programme, mit denen man das Live machen kann?
Das heißt: Einen Bereich auf dem Monitor auswählen für den dann das Histogramm angezeigt wird?
 
Hallo Berniyh, ich habe gelsen dass Gimp ab Version 2.6 und Photoshop CS es können.

Hier etwas zum Live Histogramm bezüglich Gimp:
h ttp://books.google.de/books?id=nKdjQ31PvsAC&pg=PT285&lpg=PT285&dq=live+histogramm+gimp&source=bl&ots=FCxPoz0kZI&sig=E7noJi_dqqyyhw_jx10FWXnbEhg&hl=de&sa=X&ei=-icjU62LI8yFtQbxqYGgAg&ved=0CDUQ6AEwAQ#v=onepage&q=live%20histogramm%20gimp&f=false

Und hier mittels Photoshop CS:
h ttp://graphicssoft.about.com/cs/photoshop/qt/cslivehistogram.htm

Ich denke das dürfte dir weiterhelfen :)
Ansonsten schreib nochmal zurück ;)
 
Jetzt die Frage: Gibt es auch Programme, mit denen man das Live machen kann?

Du meinst damit automatisiert alle x Sekunden das Histogramm auswerten lassen? Denke eher nicht das es da was gibt kann mich aber auch irren. Ich würde es mal mit Python versuchen, damit kann man sich Skripte erstellen, welche genau das machen was man will, und die Funktionen müssen Timed Screenshots sollten gehen, das auswählen von Bereichen der gemachten Bilder ist auch möglich, und die dan Automatisiert analysieren (Histogramm) geht mit den Funktionen aus OpenCV wohl auch.

Ich habe vor einem Jahr mal kurz damit einwenig gespielt, mit den Tutorials die im Internet zufinden sind sollte es theoretisch möglich sein in relativ kurzer Zeit, das so zu gestallten wie du das möchtest ist halt einwenig arbeit. Ich hab es aufgegeben, da damals das was ich wollte nicht annähernd möglich war, innert vernünftiger Zeit, aber die 2-3 Sachen die du da willst sollte es geben.
 
Danke für die Hinweise, ich werde mir das mal anschauen.

Prinzipiell sollte es schon machbar sein. Einen Screenshot zu machen geht ja. Dessen Histogramm auszuwerten auch. Die Daten sind also prinzipiell verfügbar.
Problem ist, dass die meisten Programme, mit denen man sowas macht nicht für fortlaufende Datenauswertung ausgelegt sind, daher braucht es dann Hacks o.ä.

Naja, mal schauen...
 
Stimmt, Python ist eine gute und simple Programmiersprache in der man sowas machen kann. Wenn es dir gelingt Screenshots mit Python zu machen, kannst du es mit dem Modul time in bestimmten Zeitabständen immer wieder machen. (Bei Stackoverflow.com habe ich coole CodeSnippets gesehen)

import gtk.gdk

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "The size of the window is %d x %d" % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
pb.save("screenshot.png","png")
print "Screenshot saved to screenshot.png."
else:
print "Unable to get the screenshot."

Bezüglich Python Histogramme kanns du hier einiges nachlesen. http://www.physik.uzh.ch/lectures/informatik/python/python-listen.php
Dort ist auch eine Beispieldatei um die Einführung zu erleichtern.
Bei der Pythonsyntax ist die Einrückung elementar wichtig. (weiß nicht inwiefern du dass schon weißt)
Wir können dir ja bei der Programmierung helfen, wenn du bei einigen Stellen nicht weiterkommst :)
 
Zurück
Oben Unten