Wie kann ich die implementieren ein fisheye-Objektiv-Effekt (barrel-transformation) in MATLAB?
Wie kann man implementieren, die fisheye-Objektiv-Effekt, illustriert dieses Bild:
Kann man verwenden das Google-logo für einen Versuch:
BTW, was ist der Begriff für Sie?
- Die links, die nicht funktionieren. es gibt eine Botschaft:
You don't have permission to access the requested object.
- Warten Sie einen moment,lassen Sie mich es zu beheben..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, das ist in der Regel bezeichnet als entweder eine "Fischaugen" - Effekt oder "Fass-transformation". Hier sind zwei links zu den demos, die ich gefunden habe:
Beispiel-code , wie Sie anwenden können, fisheye-Verzerrungen auf, Bilder mit der
'custom'
option für die Funktionmaketform
aus der Image Processing Toolbox.Ein Bildverarbeitungs-demo führt, die ein Fass-transformation mit Hilfe der Funktion
tformarray
.Beispiel
In diesem Beispiel, begann ich mit der Funktion
radial.m
von der den ersten link oben und verändert die Art und Weise, die es betrifft Punkte zwischen den input-und output-Räume schaffen ein schönes rundes Bild. Die neue Funktionfisheye_inverse
wird unten gegeben, und es platziert werden soll in einen Ordner auf Ihrem MATLAB-Pfad, so dass Sie später verwenden können, in diesem Beispiel:Die fisheye-Verzerrung sieht am besten, wenn angewendet, um quadratische Bilder, so dass Sie wollen, um Ihren Bildern Platz entweder durch zuschneiden Sie oder Polstern Sie Sie mit etwas Farbe. Da die transformation des Bildes wird nicht richtig suchen für indizierte Bilder, werden Sie wollen auch zu konvertieren alle indizierten Bilder zu RGB-Bilder mit
ind2rgb
. Graustufen oder binäre Bilder wird auch funktionieren. Hier ist, wie dies für das Beispiel Google-logo:Nun können wir die Transformation erstellen mit
maketform
und wenden Sie es mitimtransform
(oderimwarp
, wie empfohlen, in den neueren Versionen):Und hier ist das Bild, das Sie sehen sollten:
Können Sie stellen Sie den Grad der Verzerrung durch die änderung der Dritte Wert in der
options
- array, die die exponentielle Energie in der radialen Verformung des Bildes Punkte..m
Dateien in Reihenfolge für Sie zu arbeiten?options = [c/2 r/2 max(r,c)/2 1 1 1 1 1];
undoptions = [c/2 r/2 max(r,c)/2 11 1 1 1 1];
beide geben:Warning: FINDBOUNDS: Search procedure failed; returning OUTBOUNDS = INBOUNDS.
options
array sollte[c c 3]
, da das array wurde gepolsterten quadratisch sein.Ich denke, Sie beziehen sich auf die fisheye - Objektiv-Effekt. Hier ist ein code für die Nachahmung von fisheye in matlab.
Nur für das Protokoll:
Dieser Effekt ist eine Art der radialen Verzerrung genannte "tonnenförmige Verzeichnung".
Weitere Informationen finden Sie unter:
http: //en.wikipedia.org/wiki/Distortion_(Optik)
Hier ist eine andere Methode, um eine ähnliche Wirkung wie die tonnenförmige Verzerrung mit texture-mapping (adaptiert von MATLAB-Dokumentation):
Dadurch erhalten Sie den kreisförmigen Rahmen, den Sie suchen, aber die aliasing-Artefakte zu viel sein könnte, zu beschäftigen.
carnival mirror
Sie erwähnt?