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

Funktion Conv2

 

ZenkerBoy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2010, 00:12     Titel: Funktion Conv2
  Antworten mit Zitat      
Guten Abend,

kann mir jemand bitte erklären, wie die Funktion Conv2 funktioniert und für was ich sie brauche? Diese Funtkion wird bei der Lösung eines Problems verwende, das ich nachzuvollziehen versuche... aber leider versteh ich nicht wie die Funktion genau funktioniert (trotz Dokumentation) noch für was man sie braucht / was sie macht...

Handelt sich um ein Problem der BV.. daher hier gepostet...

VIELEN Dank im Voraus und einen schönen Sonntag !!


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 02.05.2010, 10:09     Titel:
  Antworten mit Zitat      
Moin und schönen Sonntag,

da Du die Doku bereits gelesen hast, bin ich mir nicht sicher, ob das neu für Dich ist. Mit der Funktion conv2 kannst Du entweder einen Filterkern für die Faltung übergeben oder die Funktionen zu fspecial nutzen, bei denen vielfach die Funktion 'gaussian' für die Bildglättung verwendet wird. Mit Filterkernen
kannst Du ebenfalls glätten oder Kanten detektieren, diese wiederum in geografische Richtungen. Bei der zweidimensionalen Faltung conv2 wird der Kernel zuerst um 180 Grad gedreht.

Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
ZenkerBoy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2010, 11:11     Titel:
  Antworten mit Zitat      
Servus, schonmal danke für Deine Hilfe...

mir ist nicht ganz klar für was ich die Faltung brauche... es geht um eine Gauss Filterung und wenn ich die VL richtig verstanden habe muss ich mir eine m x n matrix aufbauen z.b.

1 2 1
2 4 2 * 1/16
1 2 1

und damit das Ganze filtenr... das ist für mich recht logisch und geht aus der Formel auch hervor; ABER für was brauch ich dann die Faltung bzw. die Funktion conv2?? (Wie gesagt ich weiß noch nichtmal was die Faltung mathematisch macht)

Danke und Gruß,

Zenkerboy
 
ZenkerBoy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2010, 11:12     Titel:
  Antworten mit Zitat      
Achso, interessant wäre vll dass in der Aufgabenstlelung keine Matrixgröße vorgegeben wird, falls das für die LSG interessant ist
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 02.05.2010, 11:17     Titel:
  Antworten mit Zitat      
Hier 2 Beispiele:

Code:
I=imread('Test.tif');
figure(1); imshow(I); title('Original')
I2=conv2(I,[-1 -1 -1; -1 7 -1; -1 -1 -1],'same');
figure(2), imshow(I2);

I=imread('Test.tif');
DY = conv2(I,fspecial('prewitt'));
figure; imshow(DY)


Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
ZenkerBoy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2010, 11:58     Titel:
  Antworten mit Zitat      
sorry ich hab des teil immer noch nicht verstanden..

wenn ich darüber meinen gaussfilter jage:

test2 = conv2(double(test),[1/16 1/8 1/16; 1/8 1/4 1/8; 1/16 1/8 1/16],'same');

(test = imread('testbild.png') und test = rgb2gray(test)) kommt nach imshow(test) nur ein weißes bild raus ...
 
ZenkerBoy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2010, 12:02     Titel:
  Antworten mit Zitat      
Ah, doch passt...

hatte uint8 vergessen, sorry...

hoffe dass das jetzt so stimmt ...

DANKE
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 02.05.2010, 16:29     Titel:
  Antworten mit Zitat      
Du kannst die Schreibweise noch übersichtlicher gestalten, in dem
Du aus: test2 = conv2(double(test),[1/16 1/8 1/16; 1/8 1/4 1/8; 1/16 1/8 1/16],'same'); = conv2(double(test),[1 2 1;2 4 2;1 2 1]/16,'same'); machst.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.