请教Matlab图像匹配中多对匹配点matlab求仿射变换矩阵阵的问题

双目立体视觉中的图像匹配方法研究_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
双目立体视觉中的图像匹配方法研究
上传于||暂无简介
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
下载积分:1000
内容提示:图像匹配
文档格式:DOC|
浏览次数:0|
上传日期: 00:47:22|
文档星级:
该用户还上传了这些文档
官方公共微信已知四对匹配点,求解仿射变换矩阵的过程详细&可以看下图
黎约践踏z觫r咎
用三对点就可以算出来了.仿射变换模型如图:把三对点的坐标带入图中矩阵,6个方程6个未知数,即可解除a1,a2,a3,a4,b1,b2仿射变换矩阵为:[a1&&a2&&0&a3&&a4&&0&b1&&b2&&1]
为您推荐:
其他类似问题
扫描下载二维码查看: 8105|回复: 9|关注: 0
图像旋转后坐标对应问题
本帖最后由 蚂蚁日记 于
21:06 编辑
大家好!有个关于仿射变换中旋转图像坐标对应问题想请教。
我在使用仿射变换的函数,对图像进行旋转处理,旋转后的图像正确,但是我求对应点的坐标发现不对。
即无法将两图像上的对应点坐标匹配。
下面是我的代码:
&& I = imread('lena.bmp');
&& q = 0.2;
&& A = [cos(q) sin(q) 0;-sin(q) cos(q) 0;0 0 1];
&& T = maketform('affine',A);& && && && && && && && && && & %求转换矩阵
&& J = imtransform(I,T);& && && && && && && && && && && && & %对原图像进行旋转变换
&& x = 100; y = 120;& && && && && && && && &&&%原图像中的点(x,y)
&& [tx ty] = tformfwd([x y],T);& && && &&&%欲求旋转后图像上对应的点(tx,ty)
&& imshow(I)& && && && && && && && && && & %显示原图像,并在图像中标出(x,y)
&& hold on
&& plot(x,y,'r+')
&& imshow(J)& && && && && && && && && && &%显示旋转后图像,并在图像中标出(tx,ty)
&& hold on
&& plot(tx,ty,'r+')
原.jpg (22.09 KB, 下载次数: 47)
21:00 上传
旋转.jpg (24.78 KB, 下载次数: 5)
旋转后图像
21:00 上传
用上面的方法,我尝试过放大缩小、切变功能,变换前后的对应坐标都可以对应起来。
但是偏偏旋转功能,对应不起来,想了两天,还是没有找到问题所在和解决办法。
请问有知道原因的大侠吗?求指教!
非常感谢!!
顶一下,我也遇到这个问题,不知道楼主解决没有
jinxueliu 发表于
顶一下,我也遇到这个问题,不知道楼主解决没有
刚看到,问题解决了,和你分享一下:
%第三步& &旋转变换
[JRO x3data y3data] = imtransform(JSH, TRO);& &
%坐标调整,计算平移坐标;
&&if x3data(1)&0 & x3data(1)&2 | x3data(1)==0
& && && && &x3shift = 0;
& &&&elseif x3data(1)&2 | x3data(1)==2
& && && && &x3shift = -(x3data(1) - 1);
& && && && &x3shift = -x3data(1);
if y3data(1)&0 & y3data(1)&2 | y3data(1)==0
& & y3shift = 0;
elseif y3data(1)&2 | y3data(1)==2
& & y3shift = - (y3data(1) - 1);
& & y3shift = -y3data(1);
SHIFT3 = [1 0 0;0 1 0;x3shift y3shift 1];
TSHIFT3 = maketform('affine',SHIFT3);
JRO = imtransform(JRO, TSHIFT3);
%计算特征点返回时的转换矩阵;
FINAL3 = RO*SHIFT3;
TFINAL3 = maketform('affine',FINAL3);
%坐标点返回对应源图像中
[tmp3(:,1), tmp3(:,2)] = tforminv([nb_point(:,1),nb_point(:,2)],TFINAL3);
你可以参考试试
希望对你有帮助!
关注者: 5
楼主。。我看到你旋转后的图像比原来图像尺寸要大。。旋转后图像没有缺失。。。你是怎么做到的?
蚂蚁日记 发表于
刚看到,问题解决了,和你分享一下:
蚂蚁日记,你的这个程序我实现了,只适用于摄像机相对图像法线倾斜的情况,其他角度的倾斜不适用啊
关注者: 2
楼主。。我看到你旋转后的图像比原来图像尺寸要大。。旋转后图像没有缺失。。。你是怎么做到的? ...
你可以尝试使用差值 或直接使用错切法的旋转
关注者: 2
在下不才&&请教一下 图像旋转时的空穴问题是如何解决的!&&使用的是什么差值&&在编程时的思想是什么!&&谢谢!
mark~~~~~~~~~~~~~~
I = imread('cameraman.tif');
A = [cos(q) sin(q) 0;-sin(q) cos(q) 0;0 0 1];
T = maketform('affine',A);& && && && && && && && && && & %求转换矩阵
[J,xdata,ydata] = imtransform(I,T);& && && && && && && && && && && && & %对原图像进行旋转变换
x = 100; y = 120;& && && && && && && && &&&%原图像中的点(x,y)
[tx ty] = tformfwd([x y],T);& && && &&&%欲求旋转后图像上对应的点(tx,ty)
tx = tx - xdata(1);
ty = ty - ydata(1);
imshow(I)& && && && && && && && && && & %显示原图像,并在图像中标出(x,y)
plot(x,y,'r+')
imshow(J)& && && && && && && && && && &%显示旋转后图像,并在图像中标出(tx,ty)
plot(tx,ty,'r+')
刚看到,问题解决了,和你分享一下:
[face_warps{i}, xdata, ydata] = imtransform(face, tform);%对原图像进行旋转变换
& & skin_mask_warps{i} = imtransform(skin_mask_2d, tform);
& & As(1,3) = -xdata(1);
& & As(2,3) = -ydata(1);
& & As(1,2) = -As(1,2);
& & As(2,1) = -As(2,1);
& & P_warps{i} = As(1:2,:) * [P_d; ones(1,size(P_d,2))];
你好,我想问的是我也是做的旋转变换,不怎么明白这个程序能给讲一下吗&&谢谢
站长推荐 /1
Powered by君,已阅读到文档的结尾了呢~~
一种基于极几何和仿射变换的图..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
一种基于极几何和仿射变换的图像匹配方法研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 求解仿射变换矩阵 的文章

 

随机推荐