WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Prewitt, Sobel, Kompass: händische Implementierung

 

strobl_erwin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2009, 15:31     Titel:
  Antworten mit Zitat      
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!

U4Bsp1.m
 Beschreibung:

Download
 Dateiname:  U4Bsp1.m
 Dateigröße:  437 Bytes
 Heruntergeladen:  681 mal
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 16.04.2009, 19:01     Titel:
  Antworten mit Zitat      
Du hast schon wieder nicht die code-umgebung genutzt. Sad

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. Smile

prewittfilter.m
 Beschreibung:
Filter m-file

Download
 Dateiname:  prewittfilter.m
 Dateigröße:  831 Bytes
 Heruntergeladen:  692 mal
cvs_haus_titel.jpg
 Beschreibung:
Beispielbild

Download
 Dateiname:  cvs_haus_titel.jpg
 Dateigröße:  103.27 KB
 Heruntergeladen:  636 mal

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
strobl_erwin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 14.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2009, 21:53     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 16.04.2009, 22:35     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.