⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creatpureimage.m

📁 这是在MATLAB下编写的基于彩色条纹的相位测量轮廓术的源码,很实用.,在光学三维测量中
💻 M
字号:
function [ReFr1,ReFr2,ReFr3,GrFr1,GrFr2,GrFr3,BlFr1,BlFr2,BlFr3] = CreatPureImage(Row1,Row2,Periods,RH,GH,BH,a1,a2,a3)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%用此函数生成9个纯色的条纹,其中每种颜色的生成3个,而且相同颜色的纯
%彩色条纹依次相差2*pi/3相位。
%为红色的3个条纹,其余类推。输入为行列与周期。
%07-09-29 qfw
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% a = 128;
% b = 128;
f0 = 1/Periods;
X0 = meshgrid(1:Row2,1:Row1);
%%the fringes whose phases add to 2*pi/3 from one to one 
RCosFringe1 = a1+(RH/2)*sin(2*pi*f0*X0+2*pi*1/3);
RCosFringe2 = a1+(RH/2)*sin(2*pi*f0*X0+2*pi*2/3);
RCosFringe3 = a1+(RH/2)*sin(2*pi*f0*X0+2*pi*3/3);
%%%%
%%red fringe
ReFr1 = zeros(Row1,Row2,3);
ReFr2 = zeros(Row1,Row2,3);
ReFr3 = zeros(Row1,Row2,3);
%%%%%
ReFr1(:,:,1) = RCosFringe1;
ReFr2(:,:,1) = RCosFringe2;
ReFr3(:,:,1) = RCosFringe3;
%%%%
imwrite(uint8(ReFr1),'ReFr11.bmp');
imwrite(uint8(ReFr2),'ReFr22.bmp');
imwrite(uint8(ReFr3),'ReFr33.bmp');
%%%%
clear RCosFringe1 RCosFringe2 RCosFringe3 ReFr1 ReFr2 ReFr3
%%
GCosFringe1 = a2+(GH/2)*sin(2*pi*f0*X0+2*pi*1/3);
GCosFringe2 = a2+(GH/2)*sin(2*pi*f0*X0+2*pi*2/3);
GCosFringe3 = a2+(GH/2)*sin(2*pi*f0*X0+2*pi*3/3);
%%%%%
%%pure green fringe
GrFr1 = zeros(Row1,Row2,3);
GrFr2 = zeros(Row1,Row2,3);
GrFr3 = zeros(Row1,Row2,3);
%%%%%
GrFr1(:,:,2) = GCosFringe1;
GrFr2(:,:,2) = GCosFringe2;
GrFr3(:,:,2) = GCosFringe3;
%%%%%
imwrite(uint8(GrFr1),'GrFr11.bmp');
imwrite(uint8(GrFr2),'GrFr22.bmp');
imwrite(uint8(GrFr3),'GrFr33.bmp');
%%%%
clear GCosFringe1 GCosFringe2 GCosFringe3 GrFr1 GrFr2 GrFr3
%%%%%
BCosFringe1 = a3+(BH/2)*sin(2*pi*f0*X0+2*pi*1/3);
BCosFringe2 = a3+(BH/2)*sin(2*pi*f0*X0+2*pi*2/3);
BCosFringe3 = a3+(BH/2)*sin(2*pi*f0*X0+2*pi*3/3);
%%pure blue fringe
BlFr1 = zeros(Row1,Row2,3);
BlFr2 = zeros(Row1,Row2,3);
BlFr3 = zeros(Row1,Row2,3);
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%
BlFr1(:,:,3) = BCosFringe1;
BlFr2(:,:,3) = BCosFringe2;
BlFr3(:,:,3) = BCosFringe3;
%%%%%%%
imwrite(uint8(BlFr1),'BlFr11.bmp');
imwrite(uint8(BlFr2),'BlFr22.bmp');
imwrite(uint8(BlFr3),'BlFr33.bmp');
clear BCosFringe1 BCosFringe2 BCosFringe3 BlFr1 BlFr2 BlFr3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -