解决方案 »

  1.   

    这篇博文说的比你给的清楚 http://www.cnblogs.com/xiaotie/archive/2009/12/08/1619046.html[/url]
    阴影圆环代表一个半径为 rmax 的圆形选区。其中,C点是鼠标点下时的点,也就是圆形选区的圆心。鼠标从C拖到M,致使图像中的点U变换到点X。所以,关键问题是找到上面这个变换的逆变换——给出点X时,可以求出它变换前的坐标U(精确的浮点坐标),然后用变化前图像在U点附近的像素进行插值,求出U的像素值。如此对圆形选区内的每一个像素进行求值,便可得出变换后的图像。
    而这个计算公式就是
      

  2.   


    谢谢回覆,这篇我也看了,真的很让我困惑,"关键问题是找到上面这个变换的逆变换——给出点X时,可以求出它变换前的坐标U"  我就是不理解这一句话的意思,为什麽U既然是变换前的座标,不是早已知道的座标吗(原始图片pixel座标)?所以我们要求的是X? 如果是X 那方程式就会变成 X = ??? 将会变得非常复杂...如此应该怎麽运算?
      

  3.   

    非也
    从 u 点变换到 x 点时,如果是线性变换(平移)那么 u 点的坐标就是已知的
    但你做的是变形(非线性变换),所以你只知道变换后的点 x 并不知道变换前的点 u 在哪里,因此需要计算
    就好比某人现在到达台北,但你并不知道他是从台南还是高雄来的,需要通过他的旅途时间来推算他来自哪个城市
      

  4.   

    哇!! 你好厲害,還知道台灣的地名!!謝謝我能理解你給的例子,非常清楚,但無法還是有疑惑,首先我並不知道變形後的位置X,我只知道pixel原始位置U
    可否請xuzuning具體說明怎麼運算?假設我已經用for迴圈得到陰影圓形區域內所有pixel座標,這個座標是公式內的x還是u?
      

  5.   

    抱歉 忘記轉換簡體文字..再贴一次
    --------------------------------------------------------------------
    哇!! 你好厉害,还知道台湾的地名!!谢谢我能理解你给的例子,非常清楚,但无法还是有疑惑,首先我并不知道变形後的位置X,我只知道pixel原始位置U
    可否请xuzuning具体说明怎麽运算?假设我已经用for回圈得到阴影圆形区域内所有pixel座标,这个座标是公式内的x还是u?
      

  6.   

    使用繁体字并没什么问题,一般都认识,不过写就不一定了首先,鼠标从C拖到M,M 就是确定的了,那么以 M 为圆心 rmax 为半径的圆中的每一个点都是确定的了
    这一点应该是没有问题的了吧?
    其次,由于是非线性变形,所以圆M中的每一个点并不和圆C中相应位置的点一一对应(如果一一对应就不是变形了)
    这一点应该是没有问题的了吧?因此我们就需要根据圆M中的点 x 计算出圆C中的点 u 的具体坐标
    如果不变形的话  就是平移了
    正因为有了系数  才产生了变形
      

  7.   

    非常清楚的解说,谢谢!所以公式中的X = 圆移动後的圆内单点座标,故此座标也是已知,将全部数值(X,rmax,m,c)放入公式後求出U
    我这样理解是否正确?
    求出的U pixel替换掉X pixel是否就是变形後的结果?
      

  8.   

    要给分出现error 500讯息..晚点再试试看好了