來大佬幫忙看看這個程式哪里錯了





uj5u.com熱心網友回復:
xlim([min(x) max(x)]);plot(x,yy,'r','LineWidth',2);
hold on;
figure(4);
subplot(1,2,1);
x1=0:0.05:n-1;
a=size(x1);
len=a(2)-1;
x11=x1(1:len);
f11=fftshift(fft(yy));
f11=abs(f11);
plot(x11,f11);
subplot(1,2,2);
[f11y f11x]=max(f11);
fjie=f11(f11x:end);
x0=find((fjie/f11(f11x))<0.00001);
f12=(f11(f11x:(f11x+x0(1)-1)))/f11(f11x);
x2=linspace(0,1,x0(1));
plot(x2,f12);
figure(5)
plot(x2,f12);
set(gca,'xtick',0:0.1:1);
grid on;
hold on;
save tmp.mat f12 x2;
clear all;
close all;
load tmp.mat;
I11=imread('c:\Users\Administrator\Desktop\3xx.bmp');
I=imrotate(I11,-270);
I1=double(I);
[m,n]=size(I);
a=zeros(1,n);
cii=1:(n-1)*20+1
[z zz]=size(cii)
summ=a;
b=zeros(1,m);
yyy=0;
for li=1:1:m
figure (1);
subplot(2,2,1);
hang=I1(li,:);%讀取每一行的影像資料
i=[1:1:n];
plot(i, hang, 'r','linewidth',2);%顯示原始每一行的灰度分布圖
%set(gca,'xtick',0:2:n)
hold on;
grid on;
title('各級邊緣擴散函式(插值前)');
yidao=diff(hang,1);
[dmax,jizhi]=max(abs(yidao));
lindian=linspace(jizhi,jizhi+2,5);
hang1=hang(jizhi-2:jizhi+2);
c=polyfit(lindian,hang1,3);
lindian1=jizhi-2:0.01:jizhi+2;
d=polyval(c,lindian1);
plot(lindian1,d,'g')
hold on;
yidao1=diff(d,1);
[dmax1,jizhi1]=max(yidao1);
jizhi1=jizhi-2+(jizhi1/100);
b(li)=jizhi1;
%三次樣條插值
xx=1:0.05:n;
yy=spline(i,hang,xx);
subplot(2,2,3);
plot(xx,yy);
hold on;
grid on;
title('各級邊緣擴散函式檢測結果(插值后)');
summ=summ+hang;%代表三次樣條插值前各條曲線相加
yyy=yy+yyy;%yyy代表插值后各條曲線相加
end
figure (1);
subplot(2,2,2);
i=[1:1:n];
plot(i,summ/(255*m),'g','linewidth',2);
%set(gca,'xtick',0:2:n)
hold on;
grid on;
title('平均邊緣擴散函式(未插值)');
subplot(2,2,4);
cii=1:0.05:n;
plot(cii,yyy/(255*m),'g','linewidth',2);
grid on;
hold on;
title('平均邊緣擴散函式(三次樣條插值后)');
figure (2);
imshow(uint8(I1));
hold on;
i1=[1:1:m];
plot(b,i1,'*r');
hold on;
c1=polyfit(b,i1,1);
d1=polyval(c1,i1);%d1代表最終的亞像元定位點
plot(i1,d1,'b','linewidth',2);
uj5u.com熱心網友回復:
hold on;title ('邊緣檢測結果');
figure (3);
subplot(1,2,1);
lsf=diff(yyy);
lsf1=abs(lsf);
[zz,zzz]=size(lsf1);
x=linspace(1,n,zzz);
x=x';
y=lsf1;
y=y';
[ymax,xmax]=max(y);
xlim([min(x) max(x)]);
plot(x,y,'.')
plot(x,y,'-b');
hold on;
%s = fitoptions('Startpoint',[20 20 20]);
%f = fittype('a*exp(-((x-b)/c)^2)','options',s);
% [cfun,gof] = fit(x(:),y(:),f);
% yy = cfun.a*exp(-((x-cfun.b)/cfun.c).^2);
% [ymax,xmax]=max(yy);
f='a*exp(-((x-b)/c)^2)';
startPoints=[20 20 20];
f1=fit(x,y,f,'Start',startPoints);
xlim([min(x) max(x)]);
plot(f1);
[ymax xmax]=max(f1(x));
yidong=floor(xmax/20)+(xmax-floor(xmax/20)*20)*0.05;
subplot(1,2,2);
x=x';
y=y';
yy=(f1(x));
x=x-yidong;
xlim([min(x) max(x)]);
plot(x,yy,'r','LineWidth',2);
hold on;
figure(4);
subplot(1,2,1);
x1=0:0.05:n-1;
a=size(x1);
len=a(2)-1;
x11=x1(1:len);
f11=fftshift(fft(yy));
f11=abs(f11);
plot(x11,f11);
subplot(1,2,2);
[f11y f11x]=max(f11);
fjie=f11(f11x:end);
x0=find((fjie/f11(f11x))<0.00001);
f122=(f11(f11x:(f11x+x0(1)-1)))/f11(f11x);
x22=linspace(0,1,x0(1));
plot(x22,f122);
figure(5)
plot(x22,f122);
set(gca,'xtick',0:0.1:1);
grid on;
hold on;
close all;
subplot(1,2,1);
plot(x2,f12,'*r');
hold on;
plot(x2,f12,'b');
hold on;
grid on;
title('垂軌方向');
subplot(1,2,2);
plot(x22,f122,'.b');
hold on;
plot(x22,f122,'r');
hold on;
grid on;
title('沿軌方向');
figure ;
subplot(1,2,1);
%選取整個的頻率分點處的MTF值
xi=0:1/10000:1;
yi=interp1(x2,f12,xi, 'linear');
plot(xi,yi,'b');
hold on;
wan1(1)=1;
for ii=1000:1000:10000
temp=floor(ii/1000)+1;
wan1(temp)=yi(ii);
end
ii1=0:0.1:1
plot(ii1,wan1,'r*');
hold on;
grid on;
title('垂軌方向各頻率點處取值');
subplot(1,2,2);
xi=0:1/10000:1;
yi=interp1(x22,f122,xi, 'linear');
plot(xi,yi,'r');
hold on;
wan2(1)=1;
for ii=1000:1000:10000
temp=floor(ii/1000)+1;
wan2(temp)=yi(ii);
end
ii1=0:0.1:1
plot(ii1,wan2,'b*');
hold on;
grid on;
title('沿軌方向各頻率點處取值');
wan11=wan1(1:6);
wan22=(wan2(1:6))';
for count=1:1:6;
wan11(count,:)=wan11(1,:);
wan22(:,count)=wan22(:,1);
end
Zyouxia=wan11.*wan22;
Zzuoshang=Zyouxia(end:-1:1,end:-1:1)
Zyoushang=Zyouxia(end:-1:1,2:end)
Zzuoxia=Zyouxia(2:end,end:-1:1)
Zyouxia1=Zyouxia(2:end,2:end)
Z1=[Zzuoshang Zyoushang;Zzuoxia Zyouxia1]
X=-0.5:0.1:0.5;
Y=X;
[X1, Y1] = meshgrid(X, Y);
figure;
plot3(X1,Y1,Z1);
surf(X1,Y1,Z1);
uj5u.com熱心網友回復:
hang1=hang(jizhi-2:jizhi+2);就是這行老顯示下標索引必須為正整數型別或邏輯型別
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/110771.html
標籤:其他開發語言
上一篇:(python)小白的無奈
下一篇:Python問題?_??
