首页 新闻 会员 周边

图片拼接问题?

0
悬赏园豆:200 [已关闭问题]

有两张图片,它们有部分是相同的
现在要把它们一样的部分重叠起来合成一个图片,请问怎么做?

请各位大哥大姐帮忙,给点思路也行,有代码更好

解决了分数一定给奉上!!

问题补充: 先来先给
LOG王的主页 LOG王 | 初学一级 | 园豆:0
提问于:2009-06-01 16:52
< >
分享
其他回答(4)
0

关注,这个问题很专业啊

winzheng | 园豆:8797 (大侠五级) | 2009-06-01 17:10
0

动态创建图片的知识。

首先要声明一个新的位图对象、一个像素的集合。以一个有规律的方法循环你要比较的两个图片的像素点,循环中,比较图片1中的这个点在图片2中是否一样,大概要循环很多次。找到区域像素点相同的像素集合,将他们添加到新图片中,生成一个新的照片。这个应该就是你想要的图片吧。

困难点应该就是这个遍历图片像素的算法,因为不是验证一个点相同,是验证多个有坐标的点相同。但是应该也可以实现,在网络上偏离像素的资料不少啊,象验证图片相似啊,数字识别啊。

邢少 | 园豆:10926 (专家六级) | 2009-06-02 08:44
0

我觉得可以把所谓“像素”抽象一下,以使得算法更具有适用性。

不如将图片划分为若干个大小固定的子图片“区域”(Zone),大小粒度由具体应用配置;最大为整个图片(这个不可用,过于特殊),最小为单个像素。通过计算各区域的哈希值,进行多图片间的共有大区域匹配工作。

算法主要部分借鉴网络视频的“分片”算法,将一段视频分割为若干段,而每段设为独立单元,比较利于索引、定位。

假设两张图片  A[a1,b1,c1,d1][a2,b2,c2,d2][a3,b3,c3,d3][a4,b4,c4,d4]

                    B[...]...

其中 a,b,c,d 为各单元区域的哈希值。那么,可合并的条件必定是:图片 A 的某顶点可并入 B,或 图片 B 的某顶点可并入 A (两者的满足是同时的)。

步骤:

-----------------------------------------------------------------

单元区域 a';

bool isFound;

//从 B 中找 A

foreach(顶点 a in A){

         if(B.TryFind(a, out a')){

                if(!B.MoreMatch(a))//从该顶点出发,做更多匹配测试(验证是否该区域的相邻区域等真能重合);完全匹配成功条件由开发人设置。

                     Continue;

                isFound = true;

                ...

                break;

         }

}

//其它的操作, 匹配失败处理等

....

-------------------------------------------------------

解题的主要思路是渐进法,比如先将图片设置为单元区域的两倍大,然后探讨合并思路;然后设置为 3 倍大……

由简入奢易,由奢入简难,呵呵。

陛下 | 园豆:3938 (老鸟四级) | 2009-06-02 10:23
0

你还是直接用Photoshop拼接全景图吧~算法是相当复杂的

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-06-03 17:34
0

日啊看不懂啊

魔鬼的主义 | 园豆:250 (菜鸟二级) | 2009-06-06 16:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册