PDA

查看完整版本 : [问题] matlab如何处理有视角(观察角)的图像?


songhao0706
2010-04-17, 21:10
我想检测画墙上的椭圆 假如我用CCD拍摄一副图画。CCD和墙在水平方向有30度夹角,这样拍出来的图片跟CCD直拍(无夹角)出来的肯定不同,得到的椭圆和真实的一定不一样。应该如何把使用matlab把30度拍摄的图片转换为直拍的图片或者 我应该怎么才能恢复真实的椭圆信息呢?
谢谢

yfl
2010-04-18, 11:43
可以用投影变换试一下

yfl
2010-04-18, 13:54
这个是我用线性变换做的,参考一下:
clc;close all
clear
I=imread('tp.jpg');
imshow(I,[])
gray=rgb2gray(I);
gray=256-gray;
imshow(gray)
J=maketform('projective',[0.5 0 0;0 1 0;0 0 1]);
I1=imtransform(gray,J);
figure,imshow(I1)
下面分别为正拍图、成一定角度拍摄图、及处理后的图:(因为拍摄角度估计有误,故处理效果不是很好)

songhao0706
2010-04-18, 14:44
这个是我用线性变换做的,参考一下:
clc;close all
clear
I=imread('tp.jpg');
imshow(I,[])
gray=rgb2gray(I);
gray=256-gray;
imshow(gray)
J=maketform('projective',[0.5 0 0;0 1 0;0 0 1]);
I1=imtransform(gray,J);
figure,imshow(I1)
下面分别为正拍图、成一定角度拍摄图、及处理后的图:(因为拍摄角度估计有误,故处理效果不是很好)

您的第二副图像是怎么剪切到尺寸的,我做的时候,第一和第二副尺寸是相同的,所以转换过来不能达到效果

yfl
2010-04-18, 15:05
不是很明白你的意思......
第二幅图是成一定角度拍摄的图像啊

songhao0706
2010-04-18, 20:11
不是很明白你的意思......
第二幅图是成一定角度拍摄的图像啊

我想我已经明白您的意思了,谢谢

yfl
2010-04-18, 20:38
那就用摄像机标定做吧..........