clear;clc;
%打开文件,获取spt文件句柄与awv文件句柄
sptfile = fopen('h2-1207-1.spt','rb');
awvfile = fopen('h2-1207-1.awv','rb');
[SptHead] =ReadSptHead(sptfile);
iLine = cell2mat(SptHead(2,5)); %扫描宽度0.2mm
iCol = cell2mat(SptHead(2,6));
Aw = zeros(iLine*(iCol)+iCol,1000);
for i=1:iLine
for j=1:iCol
Awave = GetAwv(awvfile,SptHead,i,j,'double');
Aw(i*(iCol)+j,:)= Awave;
% wf((i-60)*700+(j-40+1),:)= Awave;
end
end
Aw(1:iCol,:)=[];
Base_line = Aw(100,:);
Bw = Aw*0;
TS = [200,300];
%% 对齐表面回波
for i = 2:size(Aw)
[acor,lag] = xcorr(Base_line(TS(1):TS(2)),Aw(i,TS(1):TS(2)));
[~,n] = max(abs(acor));
Bw(i,:) = circshift(Aw(i,:),[0,lag(n)]);
end
%%
%{
查看点数据========================
b=GetAwv(awvfile,SptHead,120,120,'double');
p= (1:1:1000);
plot(p,b);
hold on
%===================================
%}
g3=zeros(iLine,iCol);
for i=1:iLine
for j=1:iCol
Awave = Bw(i*(iCol)+j-iCol,:);
%插入
m=0;
for n=1:900
if abs(Awave(n))<=0.3;
m=m+1;
else break
end
end
%插入停止
g3(i,j)=max(abs(Awave(300:550))); % m到m+21数据点 间距0.005微妙,上表面波200,下表面波850,波速3200 +682/31(22为一段)
end
end
for i =1:2:iLine
K(i,:)=circshift(g3(i,:),[0,-2]);
end
K(2:2:iLine-1,:) = g3(2:2:iLine-1,:);
for i=1:iLine-200
for j=1:iCol-200
KK(i,j)=K(i+100,j+100);
end
end
% K(750:end,:) = NaN;
Step=0.2;
x = (1:iCol-200)*Step;
y = (1:iLine-200)*Step;figure;
imagesc(x,y,rot90(KK,2));axis image;colormap(jet);
set(gca,'xaxislocation','top');axis tight;%caxis([13,14]);
xlabel('X direction / mm','FontSize',20);
ylabel('Y direction / mm','FontSize',20);
%======================================================================================================================
%% 原始C扫描成像
%% for i=1:iLine
%% for j=1:iCol
%% Awave = GetAwv(awvfile,SptHead,i,j,'double');
%% g3(i,j)=max(abs(Awave(230:250))); %数据点间距0.005微妙,上表面波200,下表面波850,波速3200 +690
%% end
%% end
%% for i =1:2:iLine
%% K(i,:)=circshift(g3(i,:),[0,-2]); %??????%
%% end
%% K(2:2:iLine-1,:) = g3(2:2:iLine-1,:);
%% %imagesc(K); %??????%
%% % K(750:end,:) = NaN;
%% Step=0.2;
%% x = (1:iCol)*Step;
%% y = (1:iLine)*Step;figure;
%% imagesc(x,y,rot90(K,2));axis image;colormap(jet);
%% set(gca,'xaxislocation','top');axis tight;%caxis([13,14]);
%% xlabel('X direction / mm','FontSize',20);
%% ylabel('Y direction / mm','FontSize',20);
%========================================================================================================================
%%MY 多层绘图
for pl=1:1:31
layn = round(250+pl*15.8);%根据远离中心的点确定数据点的开始与结束,开始于大跳跃结束,结束于大跳跃起始,然后等分为31层
laym = round(layn-15.8);%230是起始点,17.32是等分数据
%======================================================================================================================
%% 原始C扫描成像
%% for i=1:iLine
%% for j=1:iCol
%% Awave = GetAwv(awvfile,SptHead,i,j,'double');
%% g3(i,j)=max(abs(Awave(laym:layn)));
%% end
%% end
%%
%imagesc(K);
% K(750:end,:) = NaN;
Step=0.2;
x = (1:iCol)*Step;
y = (1:iLine)*Step;figure;
imagesc(x,y,rot90(K,2));axis image;colormap(jet);
set(gca,'xaxislocation','top');axis tight;%caxis([13,14]);
xlabel('X direction / mm','FontSize',20);
ylabel('Y direction / mm','FontSize',20);
%========================================================================================================================
saveas(gcf,['E:\C-SCAN\20190318\G4\',num2str(pl),'.jpg']); %================= %修改目录
end
评论6