Autor |
Beitrag |
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 24.01.06 10:57
Hallo Leute,
wollte mal fragen ob einer weiß, ob man verschiedene Bilder mit unterschiedlicher Tiefenschärfe (Fokus) in ein scharfes Bild zusammenrechnen lassen kann? Vielleicht hat der ein oder andere das schon in Delphi gemacht oder weiß, wo ich mir diesbezüglich Informationen einholen kann...?!
Wir haben hier zwar Programmierer auf Arbeit, die das in Matlab oder C++ gemacht haben und ich hab das C++-Zeug als DLL eingebunden aber vielleicht gibt es das ja auch in Delphi. Matlab ist zwar für sich algorithmisch unheimlich stark aber so gut, wie unmöglich einzubinden, als DLL jedenfalls. Die Funktionen lassen sich zwar aufrufen, wenn sie in der DLL vorkommen aber die Übergabe von Parametern funzt nicht. Bin selbst kein Informatiker aber die Informatiker hier bei mir wissen das auch nicht, wieso das nicht klappt. Mathworks Matlab generiert zwar C/C++-Code aber man muss immer weitere Matlab-Dateien mitliefern. Die Lizensbedingungen sind unzumutbar und müssen erbracht werden. Das Dumme ist halt: Matlab kanns aber die Einbindung, wie es in "normalen" Programmiersprachen, wie Delphi, VB, C, C++ über eine einzige "normale" DLL funktioniert, funzt in Matlab nicht.
Laut der Mathworks unterstützt Matlab andere Programmiersprachen nur in der Form, dass man Matlab nicht unkenntlich lassen kann. Matlab ist (für mich jedenfalls) schlicht zu blöd (mit Absicht wahrscheinlich, um unique zu bleiben), um alles in eine "simple" DLL zu kompilieren! Na und!: was für ein Schrott also!!
Die beste Lösung wäre etwas in Delphi!
Wäre gut, wenn mir einer helfen könnte, oder einfach nur Infos senden könnte.
Vielen Dank für Eure Mühen im Voraus.
Beste Grüße
Ralph
Moderiert von UGrohne: Titel klein geschrieben.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 25.01.06 21:43
Gabs mal nicht sowas wie die ULEAD tools?
_________________ Na denn, dann. Bis dann, denn.
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 26.01.06 18:39
nee, nicht in diesem zusammenhang gehört...
|
|
Phantom1
      
Beiträge: 390
|
Verfasst: Do 26.01.06 20:32
Kannst du mal ein paar Beispiel-Bilder posten und wie das ergebnis aussehen soll? würde mich mal interessieren.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 26.01.06 20:57
Er meint sicherlich (überzogen dargestellt):
Gruppenfoto: Alle Männeln scharf abgebildet, Hintergrund total verschwommen\unscharf.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 27.01.06 09:56
Das Problem an dem Ganzen ist ja die Tatsache, dass die Daten (scharfe Ränder im Vordergrund) einfach nicht vorhanden sind. Statt dessen hast du einen haufen interpolierter (unscharfer) Pixel. Des weiteren Fehlen dir die Tiefeninformationen die man aus einem 2D Bild auch nicht mehr bekommt. Ich kann mir da auch gerade nicht so ganz vorstellen wie das bei mehreren Bildern wäre. Wenn du die fehlenden Informationen hättest, dann bräuchtest du das ja auch nicht mehr berechnen. Dann hast du sie ja bereits. Und egal wie gut Matlab ist. Ich denke mal Zaubern kann es auch nicht.
Das Einzige was mir jetzt so spontan einfallen würde wäre ein Schärfealgorithmus. Den könntest du aber auch nur auf das gesammte Bild anwenden. Denke mal aber nicht, dass das sonderlich viel hilft. Anderenfalls wäre es schon mal ein Anfang herrauszufinden was Matlab da genau macht. Wobei man den Schärfeagorithmus auch so machen könnte, dass du den nur auf die weichen Bereiche anwendest und auf Bereiche in denen härtere Kanten sind lässt du eher einen weichzeichner los. Was aber glaube ich auch eine so sinnvollen ergebnisse liefern dürfte. Abgesehen ist geringfügig Schwierig.
Ich denke auch, dass es einfacher wäre mit einem komischen Matlab schnittstelle zu leben als das selber zu machen. Aber wie gesagt. Herrauszufinden was in Matlab gemacht wird wäre auf jeden Fall schon mal ganz interessant. Liefert vielleicht auch neue Schnlüsse.
PS: Vor einer Weile gab es mal einen Artikel über eine Kamera die ihre Bild so ablegt, dass man später noch die Schärfe einstellen kann. Allerdings waren dort von einer 16 Mega Kamera nur 0.3 Mega zu gebrauchen.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 10:17
Hallo,
hier hab ich mal eine Zip-Datei angehangen, in der sich Bild-1.jpg, Bild-2.jpg, Bild-3.jpg, Bild-4.jpg sowie allesScharf.jpg befinden.
Die in C++ entstandene DLL ist gerade mal 48kb groß, der Code nicht mal 500 Zeilen. Die DLL müsste jetzt "nur" noch ein Graustufenhöhenbild erstellen, damit ich das dann zusammen z.B. mit diesem Tool verwenden kann ( www.delphi-forum.de/...oehenbild_54868.html und www.delphigl.de ==> OpenGL ==> Vorletztes Beispiel).
Vielen Dank erstmal für die Resonanz! Im Anhang die Bilder...
Viele Grüße
Ralph
Zitat: |
Das Problem an dem Ganzen ist ja die Tatsache, dass die Daten (scharfe Ränder im Vordergrund) einfach nicht vorhanden sind. Statt dessen hast du einen haufen interpolierter (unscharfer) Pixel. Des weiteren Fehlen dir die Tiefeninformationen die man aus einem 2D Bild auch nicht mehr bekommt. Ich kann mir da auch gerade nicht so ganz vorstellen wie das bei mehreren Bildern wäre. Wenn du die fehlenden Informationen hättest, dann bräuchtest du das ja auch nicht mehr berechnen. Dann hast du sie ja bereits. Und egal wie gut Matlab ist. Ich denke mal Zaubern kann es auch nicht. |
ps. hätte auch nie gerafft, dass das geht. Mir fehlt die Vorstellung. ABER ES GEHT!
Einloggen, um Attachments anzusehen!
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 27.01.06 11:26
Ach so meinst du das. Auch auf die Gefahr hin, dass es arogant klingt. Aber ich denke das sollte nicht so das wahnsinnige Problem sein.
Du musst herrausfinden wo sich Kanten befinden bzw. wo du am meisten Details hast. Dazu betrachtest du die umliegenden Pixel eines Pixels und wo der meiste Kontrast ist das hat wohl den besten Fokus. Das musst du für jedes Pixel machen und dabei dann auch alle Bilder in die Betrachtung einziehen. Bei welchen Bild (für das Pixel) der Beste Kantenwert raus springt das solltest du dann nehmen.
Eine "Höhenbild" könntest du auch so erstellen. Dazu musst du aber genau wissen in welcher Reihenfolge die Bilder aufgenommen wurden. Dann kannst du sagen das unterste ist 0 das Oberste 255 und die dazwischen (85 und 170). Wenn du jetzt raussucht wo welches Pixel am schärfsten ist kannst du in etwa sagen das ist oben und das unten. Die Rundungen der Pins würdest du so allerdings auch nicht wiklich gut hinbekommen. Da könntest du dich evtl annähern in dem sagst. Okay das hat nicht ganz so extreme Kanten das ist dann nur ein Stückchen in die Richtung. Oder du interpolierst das Ergebniss.
Probleme:
- Wenn das oberste Bild aber noch etwas hat was vor dem Fokus der Kamera wäre dann wäre das wieder weich und würde als Unscharf in die Tiefe geworfen.
- Das funktioniert nur so lange wie alle Bilder 100%tig den gleichen Winkel haben und was viel wichtiger ist. Alle Objekte auf den Bildern über eine Art Muster oder Raster verfügen. Solltest du mal eine Ebene gleichfarbige Flächen haben so dürfte das wohl nicht mehr gehen, da du nie richtige Kanten findest. Bei den Farben dürfte sich das nur kaum bemerkbar machen. Dafür aber um so mehr bei der Tiefe. Wobei das Ergebniss der Tiefe sowieso nur bedingt einsetzbar ist, da du mit 4 Stufen kein wirklich gutes Bild hinbekommen solltest. Alles nur näherungsweise und dann dürfte da auch ein gewisses Rauschen vorherschen.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Fr 27.01.06 11:27
Also der Matlab-Quelltext hierzu würde mich wirklich brennend interessieren... ich nehme mal an, dass da per FFT gearbeitet wird, um die Kanten zu finden (hohe Frequenzen)... ok, zu spät ^^ Lossy eX hat eigentlich schon alles geschrieben
AXMD
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 11:33
hallo Lossy eX,
exakt!
Funktioniert alles schon! In Matlab. Egal, was durch Matlab generiert wurde erfordert eine bestimmte Art von Lizensbedingung, sprich Kosten, die durch den Enduser zu tragen sind.
AXMD, der Quelltext... Wenn das eine Privat-Entwicklung wäre, würde ich das machen!
Aber ich arbeite für eine Firma in Berlin (TechnoLab) und Weitergeben verstieße gegen meine Vertragsbedingungen, da wir Technologieführer (nicht Marktführer) sind in diesem Bereich.
Wenn Du im Bereich image processing Ahnung hast und Dir vielleicht eine Portierung von C++/Matlab nach Delphi vorstellen kannst, dann könnten wir in diesem Bereich etwas ausmachen - sogar mit Bezahlung.
Also, sag Bescheid.
Viele Grüße
Ralph
Zuletzt bearbeitet von rd3 am Fr 27.01.06 11:38, insgesamt 1-mal bearbeitet
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Fr 27.01.06 11:38
rd3 hat folgendes geschrieben: | Wenn Du im Bereich image processing Ahnung hast und Dir vielleicht eine Portierung von C++/Matlab nach Delphi vorstellen kannst, dann könnten wir in diesem Bereich etwas ausmachen - sogar mit Bezahlung. |
Würde ich gerne machen, wenn da nicht die FH daneben wäre  . Je nachdem wie schnell du das brauchst, könnte ich mal sehe, wie ich das zeitlich arrangieren kann...
AXMD
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 11:40
Hallo!
Wer das machen will/möchte in Delphi(!), der kann sich bei mir melden und ich sende ihm dann privat die Kontaktdaten meines Chefs!
Vielen Dank Leute!!
Viele Grüße
Ralph
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 11:44
Lossy,
Zitat: | Aber ich denke das sollte nicht so das wahnsinnige Problem sein. |
Für mich schon ! 
|
|
Phantom1
      
Beiträge: 390
|
Verfasst: Fr 27.01.06 11:54
Ich wollte auch sagen das das nicht wirklich schwer sein sollte nachdem man die Beispielbilder gesehen hat. Ich wollte eben auch anfangen ein kleines Beispielprogramm zu schreiben, aber da es schon jemand anderes macht, kann ich es mir wohl sparen.
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 11:55
es hat sich noch keiner angekündigt! bis jetzt macht es noch keiner!
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 27.01.06 11:57
rd3 hat folgendes geschrieben: | Für mich schon !  |
Okay. Das kannst du besser beurteilen als ich. Mache aber seit Jahren immer mal wieder was mit Bildern. Sind aber auch alles nur sehr einfache Sachen.
rd3 hat folgendes geschrieben: | Wenn Du im Bereich image processing Ahnung hast und Dir vielleicht eine Portierung von C++/Matlab nach Delphi vorstellen kannst, dann könnten wir in diesem Bereich etwas ausmachen - sogar mit Bezahlung. |
Also ich für meinen Teil muss passen. Habe derzeit leider nicht mal sinnvoll zeit um mich um meine eigenen Dinge zu kümmern.
Ich denke mal das schreit ja schon förmlich nach einem Beitrag in der Jobbörse.
AXMD: Habe alles auf reiner Pixelbasis betrachtet. Also Sobel und was es da gibt. Das mit die FFT und die Bilders habe ich irgendwie nie gerallt. Auf Tonbasis ist das jetzt nicht schlimm. Habe ich selber ja auch schon gemacht aber für Bilder ist das bei mir so ne Sache.
PS: Also das von mir war alles nur theoretisch. Ich mache derzeit nichts und werde später wohl auch nichts machen.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Phantom1
      
Beiträge: 390
|
Verfasst: Fr 27.01.06 12:05
Ich würde es schon gerne machen, Zeit hab ich genügend. Ich kann dir allerdings erst heute abend bescheid geben, da ich erstmal sehen möchte wie gut ich das Ergebnis hinbekomme. Wäre das ok?
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 12:12
Zuletzt bearbeitet von rd3 am Fr 27.01.06 12:17, insgesamt 1-mal bearbeitet
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 27.01.06 12:14
hallo?! - na klar is das OK!
Ich kann doch keine Ansprüche stellen! Ich freu mich, dass ich hier immer gute Tipps kriege.
Wenn deine kleine Demo OK ist und du das professionell komplett machen willst, mit folgenden Schritten...:
1. beliebig viele Bilder in 1 scharfes Bild "umwandeln"
2. daraus ein Höhenbild + Textur
3. diese Ergebnisse würde ich dann z.B. mit diesem Tool ==> www.delphigl.de/files/vavsdl.zip in 3D visualisieren
... dann kannst du das auch erst rausrücken, wenn die Firma, in der ich arbeite das entsprechen entlohnt - keiner braucht was umsonst zu machen! Dazu müsste dann ein Vertrag aufgesetzt werden.
Vielen Dank an alle!!
Beste Grüße
Ralph
|
|