ZY520XUE 2017-09-01 02:27 采纳率: 0%
浏览 4973
已结题

四步相移法中的提取相位问题

%% 清理工作空间
clc;
close all;
clear;

%% 系统标定
L = 200; %摄像机光心到参考平面距离(标定获得)
D = 60; %投影仪光心到摄像机光心连线距离(标定获得)
f = 1/32; %投影的光栅频率
W_Scale = 12;
H_Scale = 12;

%% 读四副图片(调制图案)
image1 = imread('o_1000000.bmp');
I1=double(rgb2gray(image1))/255; %将0-255转化为0-1
image2 = imread('o_1000001.bmp');
I2=double(rgb2gray(image2))/255;

image3 = imread('o_1000002.bmp');
I3=double(rgb2gray(image3))/255;

image4 = imread('o_1000003.bmp');
I4=double(rgb2gray(image4))/255; %转成灰度图像

%% 读参考图像
image5 = imread('o_1000005.bmp');
I5=double(rgb2gray(image5))/255; %将0-255转化为0-1
image6 = imread('o_1000006.bmp');
I6=double(rgb2gray(image6))/255;

image7 = imread('o_1000007.bmp');
I7=double(rgb2gray(image7))/255;

image8 = imread('o_1000008.bmp');
I8=double(rgb2gray(image8))/255; %转成灰度图像

%% 调制后的图像相位计算
for i=1:512
for j=1:512
if (I1(i,j)==I3(i,j))
if(I2(i,j)>I4(i,j))
I(i,j)=pi/2;
elseif(I2(i,j)<I4(i,j))
I(i,j)=3*pi/2;
else
I(i,j)=0;
end

    elseif (I1(i,j)>I3(i,j))
        if I2(i,j)>=I4(i,j)
            I(i,j)=atan((I2(i,j)-I4(i,j))/(I1(i,j)-I3(i,j)));
        else
            I(i,j)=2*pi-atan((I4(i,j)-I2(i,j))/(I1(i,j)-I3(i,j))); 
        end

    else
        if I2(i,j)>=I4(i,j)
            I(i,j)=pi-atan((I2(i,j)-I4(i,j))/(I3(i,j)-I1(i,j)));
        else
            I(i,j)=pi+atan((I4(i,j)-I2(i,j))/(I3(i,j)-I1(i,j))); 
        end
    end
end

end

%% 参考图像相位计算
for i=1:512
for j=1:512
if (I5(i,j)==I7(i,j))
if(I6(i,j)>I8(i,j))
phase(i,j)=pi/2;
elseif(I6(i,j) phase(i,j)=3*pi/2;
else
phase(i,j)=0;
end
elseif (I5(i,j)>I7(i,j))
if I6(i,j)>=I8(i,j)
phase(i,j)=atan((I6(i,j)-I8(i,j))/(I5(i,j)-I7(i,j)));
else
phase(i,j)=2*pi-atan((I8(i,j)-I6(i,j))/(I5(i,j)-I7(i,j)));
end
else
if I6(i,j)>=I8(i,j)
phase(i,j)=pi-atan((I6(i,j)-I8(i,j))/(I7(i,j)-I5(i,j)));
else
phase(i,j)=pi+atan((I8(i,j)-I6(i,j))/(I5(i,j)-I7(i,j)));
end
end
end
end
问题:楼主知道主要的公式在于I(i,j)=atan((I2(i,j)-I4(i,j))/(I1(i,j)-I3(i,j)));可是为什么要进行分那么多?有谁可以帮我理清一下吗?谢谢了

  • 写回答

1条回答

  • Coder-Goo 2019-03-14 10:01
    关注

    用atan2不用分这么多,具体可以查一下atan和atan2的区别

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题