通过PIV图像测孤立波速C

it2022-05-05  139

通过PIV图像测孤立波速C

首先读取PIV.bin文件然后提取同一帧画面不同位置处的图像数据作为新的图像利用循环把每一帧遍历可得到两幅不同位置波形图最后储存图片总的程序如下

首先读取PIV.bin文件

// Read .bin file fip=fopen(['filename.bin'],'rb'); [SIN,num]=fread(fip,'uint8'); %inf表示读取文件中的所有数据,[M,N]表示 fclose(fip); M=2560;%代表水平分辨率为2560; N=1348;%代表垂直分辨率为1348; j=1; for k1=1:N for k2=1:1:M image1(k1,k2)=uint8(SIN(j));%将bin文件中的数据记录在image1当中 j=j+1; end end

然后提取同一帧画面不同位置处的图像数据作为新的图像

// extra data from every frame image2(:,bnumber)=image1(:,1000); image3(:,bnumber)=image1(:,2000);

利用循环把每一帧遍历可得到两幅不同位置波形图

// process the figure figure imshow(image2); figure imshow(image3); %改变图片对比度 figure P2=image2; P2(255>P2>50)=1; P2(50>P2>0)=254; imshow(P2) figure P3=image3; P3(255>P3>35)=1; P3(35>P3>0)=254; imshow(P3)

通过改变特定颜色对比度来显示波面

最后储存图片

imwrite(P2,['filename1.bmp']); imwrite(P3,['filename2.bmp']);

总的程序如下

clear all; clc for bnumber=1:n fip=fopen(['filename.bin'],'rb'); [SIN,num]=fread(fip,'uint8'); %inf表示读取文件中的所有数据,[M,N]表示 fclose(fip); M=2560;%代表水平分辨率为2560; N=1348;%代表垂直分辨率为1348; j=1; for k1=1:N for k2=1:1:M image1(k1,k2)=uint8(SIN(j));%将bin文件中的数据记录在image1当中 j=j+1; end end image2(:,bnumber)=image1(:,1000); image3(:,bnumber)=image1(:,2000); end figure P2=image2; P2(255>P2>50)=1; P2(50>P2>0)=254; imshow(P2) figure P3=image3; P3(255>P3>35)=1; P3(35>P3>0)=254; imshow(P3) imwrite(P2,['filename1.bmp']); imwrite(P3,['filename2.bmp']);

最新回复(0)