123231321 发表于 2007-9-12 20:55

如何实现图像拼接

我要把下面两幅图像给拼接起来,请问用MATLAB该如何实现?
我在本论坛中找过有关图像拼接的话题,但由于仅有代码无相应的图片,所以对程序不大理解.
请大家帮忙解决下我的问题,谢谢!

[ 本帖最后由 eight 于 2007-9-12 20:57 编辑 ]

花如月 发表于 2007-9-12 21:37

对代码不感兴趣:lol 那就别编程了,最简单的绘图工具都可以完成拼接功能。简单方便:lol

花如月 发表于 2007-9-12 21:59

图像拼接的实质是数据的重组,发个最简单的图。虽然简单不过目的是要告诉做图像处理的朋友,很多问题需要自己根据实际情形去设计算法。如果是复杂的拼接,比如图像彼此有交叉但是有都可以看得到(类似于photoshop里的不同图层不同透明度的情形),该怎么用m语言实现呢?
--------------------------楼主讨厌的代码:lol ------------------------------
A=imread('lena.bmp');
B=repmat(A,2,3);
imshow(B);
-----------------------------------结果见附图----------------------------

[ 本帖最后由 花如月 于 2007-9-12 22:05 编辑 ]

123231321 发表于 2007-9-12 22:37

rempat描述的是:通过复制与叠置矩阵来创建新矩阵.用这个函数似乎不能实现我所提出来的问题.不过还是很感谢楼上的解答.
我用程序算过:图像2(LENA-8G2)相对于图像1(LENA-8G1)的位移量(单位-像素):
水平方向(x方向) :61
竖直方向(y方向) :78
问题是:MATLAB中无平移函数,所以我不知怎样将两个图形拼接?
请知道的给我解答下,十分感谢!

花如月 发表于 2007-9-12 22:47

回复 #4 123231321 的帖子

是啊,我的例子只是为了说明图像并接和平移都是一个数据重组的问题,而不是为了解决你的问题。你的这个问题其实挺简单的,利用现有的函数实现代码也没多少行的。自己多思考一下吧:@)

[ 本帖最后由 花如月 于 2007-9-12 22:49 编辑 ]

eight 发表于 2007-9-12 23:02

楼主的意思是找到两幅图像的重合之处,然后再拼接,得到完整的 lena 头像?这个估计比较难实现

[ 本帖最后由 eight 于 2007-9-12 23:04 编辑 ]

花如月 发表于 2007-9-13 10:15

回复 #6 eight 的帖子

这个也不难实现的,还是数据的重组问题。只要知道图像的平移信息就比较容易,如果不知道平移信息,就需要设计算法定位某一共有特征(比如眼睛),求出平移信息。然后再合成,楼主给的图我试过了,平移的信息似乎有问题。合成的时候误差比较大,附图我自己截的图,然后再合成的。

[ 本帖最后由 eight 于 2007-9-13 20:04 编辑 ]

123231321 发表于 2007-9-13 10:53

我用MATLAB编时,
最后算出:图像2相对于图像1的位移量(单位-像素):
水平方向(x方向) :61
竖直方向(y方向) :78
现在给出了平移量,我该如何实现您显示的合成后的图形呢?
您显示的合成后的图形,正是我想要得出来的,但我不知如何实现.
请您指教,谢谢!

eight 发表于 2007-9-13 20:04

原帖由 花如月 于 2007-9-13 10:15 发表 http://www.chinavib.com/forum/images/common/back.gif
这个也不难实现的,还是数据的重组问题。只要知道图像的平移信息就比较容易,如果不知道平移信息,就需要设计算法定位某一共有特征(比如眼睛),求出平移信息。然后再合成,楼主给的图我试过了,平移的信息似乎 ...

如果只是平移的问题,当然还好办一些,呵呵

eight 发表于 2007-9-13 20:05

原帖由 123231321 于 2007-9-13 10:53 发表 http://www.chinavib.com/forum/images/common/back.gif
我用MATLAB编时,
最后算出:图像2相对于图像1的位移量(单位-像素):
水平方向(x方向) :61
竖直方向(y方向) :78
现在给出了平移量,我该如何实现您显示的合成后的图形呢?
您显示的合成后的图形,正是我 ...

矩阵的一些技巧而已,建议多看看热点问题的那个置顶帖

花如月 发表于 2007-9-13 20:56

回复 #8 123231321 的帖子

楼上说的很对,都是一些简单的技巧。你还是看看置顶帖子和一些基础知识就好了。另外你算的平移量也是是有问题的。

eight 发表于 2007-9-13 23:08

原帖由 123231321 于 2007-9-13 10:53 发表 http://www.chinavib.com/forum/images/common/back.gif
我用MATLAB编时,
最后算出:图像2相对于图像1的位移量(单位-像素):
水平方向(x方向) :61
竖直方向(y方向) :78
现在给出了平移量,我该如何实现您显示的合成后的图形呢?
您显示的合成后的图形,正是我 ...

看这个吧:matlab矢量化编程技巧集锦

虽然没有明显的答案,但是里面使用了 : 这个运算符,你掌握好该运算符就可以了

123231321 发表于 2007-9-14 21:22

谢谢eight!

12yy12yun 发表于 2008-5-6 19:35

请问有没完整的关于基于特征的图像拼接的代码~~~~我是初学做这方面的东西,想借完整的代码看看学习下~~~谢谢各位了

wxw0827 发表于 2009-4-6 09:22

真的能学到东西了,,,谢谢你们,,,,,支持你们。。。:handshake :victory:
页: [1] 2
查看完整版本: 如何实现图像拼接