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

Korrelation (Bildzuordnung)

 

Alexander

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2007, 15:04     Titel: Korrelation (Bildzuordnung)
  Antworten mit Zitat      
Bildzuordnungsverfahren "Korrelation"

Code:

% --------------------------------------------------
% Aufgabe: Korrelation ausgewählter Punkte (Fenster)
% --------------------------------------------------

% Übung in Digitaler Bildzuordnung - Analyse von Fenstergrößen und Lage der Punkte auf das
% Zuordnungsergebnis
% zu ergänzen:    
%       a) Berechnung und grafische Darstellung von Parallaxen
%       b) Analyse unterschiedlicher Fenstergrößen durch einmaliges Auswählen von Punkten, Zuordnung mit
%            Fenstergröße A  und danach Korrelation mit Fenstergröße B an den gl. Punkten.
%             Tabellarische und grafische Darstellung der Ergebnisse
% Datum: 4.5.2007
%

%Input:     2 Bilder
%           Korrelationsfenstergröße
%           Suchfenstergröße
%           Schwellwerte für die Korrelation
%           MH, mit Änderungen EG
%
%*********************************************************************

close all;
clear all;
clc

% 1. Einlesen der Bilder

image1_filename = 'IMG9040l.jpg'
image2_filename = 'IMG9040r.jpg'

% Vorgaben

threslow = 0.70; threshigh = 0.85; % Schwellwerte  um Erfolgsgrad zu unterscheiden

corr_window_size = 31;  % Korrelationsfenstergröße
search_window_size = 151; % Suchfenstergröße
average_shift = 0; % geschätzte Verschiebung (in x-Richtung)

nw_template = floor (corr_window_size/2); %halbe Größe
nw_search = floor(search_window_size/2);

% Bilder lesen
% Bilder lesen
Ima1read =imread(image1_filename);
Ima2read =imread(image2_filename);
Ima1=RGB2GRAY(Ima1read);
Ima2=RGB2GRAY(Ima2read);

% Interaktive  Auswahl zu korrelierender Punkte

figure; imshow(Ima1); title(image1_filename)
hold on
% Liste als leere Liste initialisieren.
colrow1 = [];   %col  entspricht x-Achse, row entspricht y-Achse
ipt = 0;
% Schleife, um Punkte auszuwählen/zu messen.
disp('Linker Mausbutton: Punkte auswählen/messen.')
disp('Rechter Mausbutton: Letzten Punkt auswählen.')
mouse_button = 1;
set(gcf,'DefaultTextColor','red')
while mouse_button == 1
    [xi,yi,mouse_button] = ginput(1);
    % runden auf ganze Pixel  
         ipt = ipt+1;
         xi = round(xi);  yi = round(yi);
         % sprintf('Punkt %d: col=%d,row=%d',ipt,xi,yi)      
    plot(xi,yi,'go')
    textrc = sprintf('%s %s %s %s','r=',int2str(yi),' c=', int2str(xi));
    htext = text(xi+10,yi-10,textrc);
    colrow1(:,ipt) = [xi;yi];
end
hold off



% Korrelation berechnen

% 1. Näherungen
    colrow2 = colrow1;
    colrow2(1,:) = colrow1(1,:) + average_shift;
   
% Startwerte
   figure, imshow (Ima2), title ('Bild 2 mit Startwerten')
   hold on, plot(colrow2(1,:), colrow2(2,:), 'm <');
   

for i = 1:ipt
% Bildausschnitt um row1 und col1 entnehmen
% template ist ein 11 * 11 großer Bildausschnitt um Bildpunkt
col1 = colrow1(1,i); row1= colrow1(2,i);
template =Ima1(row1 - nw_template: row1 + nw_template,col1 - nw_template: col1 + nw_template);

col2 = colrow2(1,i); row2= colrow2(2,i);
search = imcrop(Ima2,[col2-nw_search, row2-nw_search, search_window_size, search_window_size]);    % [x y  width height]
% Vorteil: imcrop beschränkt automatisch auf max Bildgröße
%% figure, imshow(search)

%Korrelation mit dem zweiten Bild berechnen
%Korrelationsmatrix cc

cc = normxcorr2(template,search);
% Rand bis zur gleichen Größe eliminieren
[nrcc,nccc] =size(cc);
ccx = cc(nw_template:nrcc-nw_template, nw_template:nccc-nw_template);

% Korrelation plotten
%figure, surf(ccx), shading flat;

% maximalen Korrelationskoeffizienten bestimmen
     max_cc(i) = max(abs(ccx(:)));
[ymax,xmax] = find (abs(ccx) ==max_cc(i)); %

% gefundene Korrelationspartner im 2. Bild koordinieren

 colrow2(1,i)= col2-nw_search + xmax; colrow2(2,i)= row2-nw_search + ymax;

end
 
% Position des Korr. Maximas in Bild 2 anzeigen  
%

title ('Bild 2 mit Korr.Maximum')
hold on, set(gcf,'DefaultTextColor','yellow')
% plot( colrow2(1,Smile, colrow2(2,Smile, 'y o');

% Schwellwerte  um Erfolgsgrad zu unterscheiden
% Plot der Punkte wie bei Ampel rot, gelb, grün
threslow = 0.75; threshigh = 0.90;
for i = 1:ipt
    hold on
    xi=colrow2(1,i); yi= colrow2(2,i);
    textrc = sprintf('%s %s %s %s %s%s','r,c=',int2str(yi),',', int2str(xi),...
                        'cc=',int2str(max_cc(i)*100));

    if max_cc(i) < threslow
         plot(xi,yi,'ro', xi,yi,'r*');
            set(gcf,'DefaultTextColor','red')
            htext = text(xi+10,yi-10,textrc);
    elseif  max_cc(i) > threshigh
         plot(xi,yi,'go', xi,yi,'g*');  
            set(gcf,'DefaultTextColor','green')
            htext = text(xi+10,yi-10,textrc);
    else
         plot(xi,yi,'yo', xi,yi,'y*');  
            set(gcf,'DefaultTextColor','yellow')
            htext = text(xi+10,yi-10,textrc);
    end
end
 



Aufgabe:

1. Untersuchen das Zuordnungsverhalten je nach Art des ausgewählten Punktes. (d.h. Korrekte Zuordnung, Korrelationsmaximum)

2. Ergänzen der Software durch Bestimmung der x- und y-Parallaxwn (px=x'-x'', py=y'-y'') und graphische Ausgabe.

3. Ergänzen der Software, dass eine Analyse unterschiedlicher Fenstergrößen möglich ist. (z.B. durch einmaliges Auswählen von Punkten, Zuordnung mit Fenstergröße A und danach Korrelation mit Fenstergröße B an gleichen Punkten mit tabellarischer und graphischer Darstellung der Ergebnisse.

Vielen Dank für jeden möglichen Ansatz!!!


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 15.11.2007, 16:53     Titel:
  Antworten mit Zitat      
Hallo Alexander,

bei allem Respekt, aber ich finde es dreist von Dir die komplette Aufgabenstellung 1:1 hier zu posten! Zu erwarten wäre, dass Du wenigstens Dich selbst damit ausseinander setztst und bei Unklarheiten das Problem in reduzierten Form hier postest, aber nicht so...

Ich habe zwar Ahnung von Bildverarbeitung und Bildkorrelation, aber würde aus Prinzip kein Blick in den Code werfen.




MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 19.11.2007, 13:52     Titel:
  Antworten mit Zitat      
Hallo outsider,

als Lehrbeauftragter an einer Fachhochschule weiß ich leider nur zu gut aus eigener, leidvoller Erfahrung, daß dieses völlig zurecht von Dir gerügte Vorgehen mittlerweile die Standard-Vorgehensweise der Damen und Herren Studenten ist:

1. Googlen o.ä. im Internet
und/oder
2. durch entsprechende Foren vagabundieren

3. irgendein gutmütiger Dödel wird sich schon finden, der einem die Übungsaufgabe/Semesterarbeit löst.

4. Copy/Paste

5. Abgeben


Kein Wunder, daß in Deutschland Mangel an Fachkräften herrscht.

Gruß tompie


outsider hat Folgendes geschrieben:
Hallo Alexander,

bei allem Respekt, aber ich finde es dreist von Dir die komplette Aufgabenstellung 1:1 hier zu posten! Zu erwarten wäre, dass Du wenigstens Dich selbst damit ausseinander setztst und bei Unklarheiten das Problem in reduzierten Form hier postest, aber nicht so...

Ich habe zwar Ahnung von Bildverarbeitung und Bildkorrelation, aber würde aus Prinzip kein Blick in den Code werfen.




MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
sepp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2010, 02:23     Titel:
  Antworten mit Zitat      
Lehrbeauftragter ... dass ich nicht lache ... wenn ein Student sowas machen würde, dann bekäme er den Wisch um die Ohren gehauen wenn der Prof nur halbwegs google bedienen kann. So ein Vorgehen gehört bestimmt nicht zum Standard.

Aber schön hier mal ein Matlab Beispiel zu finden, wo ich gerade versuche so eine Korrelation durchzuführen.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 31.12.2010, 23:56     Titel:
  Antworten mit Zitat      
Hallo sepp,

Zitat:
Lehrbeauftragter ... dass ich nicht lache ...

Das verstehe ich nicht. Möchtest Du infrage stellen, ob tompie Lehrbeauftragter ist?!

Meine Erfahrungen in diesem und anderen Foren und als Übungsgruppenleiter bestätigen auf jeden Fall, dass Studenten versuchen billig an Lösungen ihrer Aufgaben zu gelangen. Professoren haben im Allgemeinen anderes zu tun, als die Hausaufgaben ihrer Studenten von Google checken zu lassen. Im Zweifel ist eine kurze Nachfrage, was der Student denn bei einer bestimmten Zeile beabsichtigt hat, effizienter.

Die Frage von Alexander ist ohne Zweifel ein recht krasses Beispiel. Ich glaube nicht, dass er sich damit auf goMatlab beliebt macht.
Ich kenne aber auch gegenteilige Beispiele, bei denen ich Studenten explizit aufgefordert habe, doch wenigstens auf die Hilfe im großen Internet zuzugreifen.

Ich wünschen allen Lehrbeauftragten und Lernenden ein schönes neues Jahr! Ich muss mich nun doch mal wieder um die Realität kümmern.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DerArmeStudent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2021, 14:59     Titel: echt schlimm...
  Antworten mit Zitat      
2021 und ich sitz immernoch an der sch... und der Fachkräftemangel wird auch immer größer Sad
 
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.