|
|
Prewitt, Sobel, Kompass: händische Implementierung |
|
strobl_erwin |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 14.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2009, 14:31
Titel:
|
|
|
|
|
Ok, ich sende dir jetzt den vollständigen Code, wobei ich den Zusatz length am Anfang der For-Schleife weggelassen habe.
Lege auch das M-File bei. Habe wiederum ein Problem, dass es mir jetzt ein Problem mit der "Ausgangsmatrix" anzeigt. Die Eingangsmatrix LWS kann jedes beliebige Bild sein.
LWS = imread ('lws.jpg');
PrewittHor = [1 1 1; 0 0 0; -1 -1 -1];
NachbarRangeS = ceil(length (PrewittHor) /2);
[sizeHor sizeVer] = size(LWS);
[fzeilen fspalten] = size (PrewittHor);
for cols = 1 : sizeVer
for rows = 1 : sizeHor
Ausgangsmatrix (rows + NachbarRangeS, cols + NachbarRangeS) = sum (sum (LWS(rows: (rows +(fZeilen-1)), cols: (cols + (fSpalten-1))) .* PrewittHor));
end
end
Meine Fragen: Was hast du genau gemacht, als du bei der FOR-Schleife 1 : sizeHor - length (PrewittHor) subtrahiert hast?
Wenn diese Schleife einmal geht, funktionieren dann alle Kerne? Ich hoffe ja.
Du hast mir bis jetzt schon sehr viel weiter geholfen, hoffe jetzt endlich auf einen Abschluss dieses empfindlichen händischen Programmierens.
Hoffe, du kannst mir helfen!
Erwin
PS: Bei Veränderung des M-Files bitte auch hochladen, dass ich das veränderte M-File verwenden kann. Vielen Dank für alles!
Beschreibung: |
|
Download |
Dateiname: |
U4Bsp1.m |
Dateigröße: |
437 Bytes |
Heruntergeladen: |
728 mal |
|
|
|
|
|
Maddy |
Ehrenmitglied
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 02.10.08
|
|
|
|
Wohnort: Greifswald
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2009, 18:01
Titel:
|
|
Du hast schon wieder nicht die code-umgebung genutzt.
Nun ja, das mit length habe ich gemacht, damit die Laufvariablen row und col in den for-schleifen nicht größer werden als die maximalen Ausmaße des Bildes.
Ich habs in der m-file jetzt erstmal für einen symmetrischen Kern nxn gemacht. Als Eingangsbild habe ich ein jpg genommen. Das ergibt dann einen wunderbaren Filtereffekt.
Bild und m-file findest du im Anhang.
Für quadratische Kerne (kleiner als das Eingangsbild) sollte dieses Beispiel immer funktionieren.
Beschreibung: |
|
Download |
Dateiname: |
prewittfilter.m |
Dateigröße: |
831 Bytes |
Heruntergeladen: |
738 mal |
Beschreibung: |
|
Download |
Dateiname: |
cvs_haus_titel.jpg |
Dateigröße: |
103.27 KB |
Heruntergeladen: |
670 mal |
_________________
>> why
The computer did it.
|
|
|
strobl_erwin |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 14.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2009, 20:53
Titel:
|
|
|
|
|
Ich danke dir vielmals!
Du hast mir so viel geholfen! Das war echt toll von dir! Was du mir geholfen hast ist dir wahrscheinlich nicht mal bewusst, aber es war total super von dir, dass du Zeit aufgewendet hast und für mich dieses Skript geschrieben hast! Und ich habe jetzt auch meinen Fehler entdeckt, wieso's bei mir nicht gefunzt hat! Vielen Dank!
Ich hätte nur noch einige andere Fragen, die nur noch zum Verständnis dienen:
1. LWS =sum(LWS,3)/3; % alle 3 Farbkanäle zusammen gefasst
kann ich diesen Schritt umgehen, indem ich das Bild einfach in ein Graubild umwandle?
2. Was macht dieser Befehl?
colormap('gray(255)')
bzw. in der letzten Zeile: colormap('gray')
erübrigt sich dieser Befehl wenn ich graue Bilder habe?
3. Was heißt clc in der ersten Zeile?
Ich will mich nochmals herzlich bedanken, wenn du mir nicht geholfen hättest, dann hätte ich es niemals geschafft. Ich will das Thema noch offen halten, bis ich Sobel und Kompass auch selber geschafft habe, aber vorerst habe ich keine Fragen mehr.
Vielen Dank nochmals!
Erwin
|
|
|
Maddy |
Ehrenmitglied
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 02.10.08
|
|
|
|
Wohnort: Greifswald
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2009, 21:35
Titel:
|
|
da ich keine image processing toolbox habe, konnte ich befehle wie imshow und rgb2gray nicht verwenden.
1. Wenn du es per rgb2gray umwandelst, kannst du die zeile wegnehmen.
2. da ich mit image darstelle, musste ich jeweils die colormap auf grau festlegen, weil ansonsten die bilder in falschfarben dargestellt werden.
Mit imshow müsste es auch ohne colormap definition gehen, müsstest du dann testen.
3. clc bedeutet, das er alle ein- und ausgaben aus dem command window löscht, kannst du also rausnehmen. hatte ich nur für die fehlersuche drin.
_________________
>> why
The computer did it.
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|