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

📄 caisepmpmoni.m

📁 这是在MATLAB下编写的基于彩色条纹的相位测量轮廓术的源码,很实用.,在光学三维测量中
💻 M
字号:
clear all
close all
clc

[filename,pathname] = uigetfile('*.bmp','打开投影物体的图像文件...');
fName0 = strcat(pathname, filename);

ImagePMPObject = double(imread(fName0));

[filename1,pathname1] = uigetfile('*.bmp','打开投影参考平面的图像文件...');
fName01 = strcat(pathname1, filename1);

ImagePMPRefer = double(imread(fName01));
% x=imread('caijicos1.bmp');
% y=imread('Image000.bmp');
% x0=im2double(x);
% %image(x0)
% y0=im2double(y);
%figure;image(y0)
y0 = ImagePMPRefer;
x0 = ImagePMPObject;
x1 = x0(:,:,1);
[m,n] = size(x1);
ma = max(max(x1));
mi = min(min(x1));
for i = 1:m
    for j = 1:n
        x1(i,j) = ((x1(i,j)-mi)*255)/(ma-mi);
    end
end
w = gausswin(9)*gausswin(3)';
x1 = imfilter(x1,w,'circular');

x2 = x0(:,:,2);
[m1,n1] = size(x2);
ma1 = max(max(x2));
mi1 = min(min(x2));
for i1 = 1:m1
    for j1 = 1:n1
        x2(i,j) = ((x2(i1,j1)-mi1)*255)/(ma1-mi1);
    end
end
x2 = imfilter(x2,w,'circular');
x3 = x0(:,:,3);
[m2,n2] = size(x3);
ma2 = max(max(x3));
mi2 = min(min(x3));
for i2 = 1:m2
    for j2 = 1:n2
        x3(i2,j2) = ((x3(i2,j2)-mi2)*255)/(ma2-mi2);
    end
end
x3 = imfilter(x3,w,'circular');
y1 = y0(:,:,1);
[m3,n3] = size(y1);
ma3 = max(max(y1));
mi3 = min(min(y1));
for i3 = 1:m3
    for j3 = 1:n3
       y1(i3,j3) = ((y1(i3,j3)-mi3)*255)/(ma3-mi3);
    end
end
y1 = imfilter(y1,w,'circular');
y2 = y0(:,:,2);
[m4,n4] = size(y2);
ma4 = max(max(y2));
mi4 = min(min(y2));
for i4 = 1:m4
    for j4 = 1:n4
        y2(i4,j4) = ((y2(i4,j4)-mi4)*255)/(ma4-mi4);
    end
end
y2 = imfilter(y2,w,'circular');
y3 = y0(:,:,3);
[m5,n5] = size(y3);
ma5 = max(max(y3));
mi5 = min(min(y3));
for i5 = 1:m5
    for j5 = 1:n5
        y3(i5,j5) = ((y3(i5,j5)-mi5)*255)/(ma5-mi5);
    end
end
y3 = imfilter(y3,w,'circular');
%%
g01 = sqrt(3).*(y1-y2);
g02 = 2.*y3-(y1+y2);
g0 = atan2(g01,g02);
%%
[m,n] = size(g0);
mask=ones(size(g0));
phai0=zlf_dunwrap(g0,mask,[m/2,n/2-60]);
%%%%
g11 = sqrt(3).*(x1-x2);
g12 = 2.*x3-(x1+x2);
g1 = atan2(g11,g12);
%%%
[m,n] = size(g1);
mask=ones(size(g1));
phai1=zlf_dunwrap(g1,mask,[m/2,n/2-60]);
% g = g1 - g0;
% phai=unwrap(unwrap(g)')';
phai = phai1 - phai0;
% phai0=zlf_dunwrap(-g0,mask,[m/2,n/2]);
% phai1=zlf_dunwrap(-g1,mask,[m/2,n/2]);
% phai=phai1-phai0;
figure;mesh(phai)


⌨️ 快捷键说明

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