hi, folgendes problem:
ich bin gerade dabei etwas in matlab zu programmieren.
ein bild wird eingelesen bissel gewandelt und am ende wird die intensität ermittelt und geplottet. was ich jetzt seit mitlerweile ner woche nicht hinbekomme ist es mir aus den intensitätsplots die min/max-werte heraus zuziehen und in ne matrix zu schreiben. in dem markierten teil habe ich eigentlich vor, die werte zu finden, wobei ein mindestabstand von 30 pixel dazwischen sein soll.
die bilder werden folgendermassen aussehen
in den intensitätskurven hat man dann links und rechts des gitters nur murks, das muss ich auch noch wegschneiden, was ich ja mit den 30 pixeln abstand bezwecke.
die werte sind alle zwischen 0 und 1. das bild ist ein idealbild, die echten sind noch schlimmer
so wie ich es habe, nimmt er aber nur die maximalwerte und schreibt mir die position dazu -.-
kennt sich da wer aus und kann mir weiterhelfen?
ich bin gerade dabei etwas in matlab zu programmieren.
clear all
[name, path] = uigetfile('*.jpg', 'Select Data-File');
bildname = [path, name];
B = imread(bildname);
[n m l] = size(B);
I=B(:,:,1);
G = mat2gray(I); %Intensität auf 0-1 setzen
figure(3)
imshow(G)
%Linien setzen
[a d] = ginput(2);%Anzahl der eingaben in klammern
d(2,1)= d(1,1);
line(a,d)
Y=[a d];
X=size(G);
z=(X(1,1)-Y(1,2))/50;
k=floor(z);
M(:,1)=d;
hold on
for i=1:k
d=d+[50;50];
M(:,i+1)=d;
line(a,d)
end
j=ceil(sqrt(k+1));
figure(4)
for i=1:k+1
C=[M(1,i);M(2,i)];
subplot(j-1,j,i), plot((improfile(G,a,C)))
[max,min] = findpeaks(improfile(G,a,C),'minpeakdistance',30);
hold on;
N = [max,min]
end
[name, path] = uigetfile('*.jpg', 'Select Data-File');
bildname = [path, name];
B = imread(bildname);
[n m l] = size(B);
I=B(:,:,1);
G = mat2gray(I); %Intensität auf 0-1 setzen
figure(3)
imshow(G)
%Linien setzen
[a d] = ginput(2);%Anzahl der eingaben in klammern
d(2,1)= d(1,1);
line(a,d)
Y=[a d];
X=size(G);
z=(X(1,1)-Y(1,2))/50;
k=floor(z);
M(:,1)=d;
hold on
for i=1:k
d=d+[50;50];
M(:,i+1)=d;
line(a,d)
end
j=ceil(sqrt(k+1));
figure(4)
for i=1:k+1
C=[M(1,i);M(2,i)];
subplot(j-1,j,i), plot((improfile(G,a,C)))
[max,min] = findpeaks(improfile(G,a,C),'minpeakdistance',30);
hold on;
N = [max,min]
end
ein bild wird eingelesen bissel gewandelt und am ende wird die intensität ermittelt und geplottet. was ich jetzt seit mitlerweile ner woche nicht hinbekomme ist es mir aus den intensitätsplots die min/max-werte heraus zuziehen und in ne matrix zu schreiben. in dem markierten teil habe ich eigentlich vor, die werte zu finden, wobei ein mindestabstand von 30 pixel dazwischen sein soll.
die bilder werden folgendermassen aussehen
in den intensitätskurven hat man dann links und rechts des gitters nur murks, das muss ich auch noch wegschneiden, was ich ja mit den 30 pixeln abstand bezwecke.
die werte sind alle zwischen 0 und 1. das bild ist ein idealbild, die echten sind noch schlimmer
so wie ich es habe, nimmt er aber nur die maximalwerte und schreibt mir die position dazu -.-
kennt sich da wer aus und kann mir weiterhelfen?
Zuletzt bearbeitet: