假设一个矩形图片ABCD , 要映射到一个不规则的四边形A'B'C'D'中区,其中A映射到A'上 , B映射到B'上,C映射到C' 上,D映射到D'上,已知矩形图片的四个顶点坐标和不规则四边形的四个顶点坐标,问矩形图片中间的任何一点坐标对应不规则四边形中的哪一点?
 
 有没有什么规则,最好有公式什么的;
 
 或者推理过程是怎样的;  有人有做过类似图形处理的吗?

解决方案 »

  1.   

    1. 首先把 ABCD矩形画上等距的方格,很容易做吧, 比如AB边m个等距点, AC边n个等距点,则有m*n个格子,不是方格也没关系。每个2. 然后A'B'也m个等距点, C'D'也m个等距点; A'C'有n个等距点, B'D'有n个等距点,这些点的连线把A'B'C'D'分成了m*n个不规则的方格3. 两张图的格子有一一对应关系的。 opencv里面可以做映射!
      

  2.   

    用OpenCV吧,知道了两幅图的四个对应点,OpenCV里面有两个函数可以实现直接变换
      

  3.   

    openCV里面透视变换,通过两个数组计算出变换矩阵。然后进行变换
    getPerspectiveTransform(srcQuad,dstQuad);
    warpPerspective()
    你去查一下这两个函数就知道了。
      

  4.   

    如果都是凸四边形,直接对角线一下,变成2个三角形,然后map
    想到一个方法就是,对每个三角形,用2个参数,u,v
    u是点D在底边AB上的滑动,从0到1
    v是点E在第三点C和D连线上的滑动,也从0到1,
    这样E(u,v)就是所求,2个三角形中采用相同的(u,v)就能找到对应点了.