如何对图像进行拉升变形啊?
或者二次方程组是怎么解的啊?

解决方案 »

  1.   

    不知道你的拉升是什么意思,如果是简单的伸缩的话,用Canvas的StretchDraw就可以实现了,否则的话,你可能要用到BMP的ScanLine取出各点值进行运算了。
      

  2.   

    对拉,怎么做啊.
    就是说,做四个图根点,根据这四个图根点,对图像进行拉升,变形,使这副图像的四个点分别对应到另外一副图上的四个点上去.就好像arcinfo,或者使mapinfo里面那样,对图像进行匹配,怎么做啊?
      

  3.   

    如果是3个点的话,应该可以通过坐标系的转换来达到目的的,具体的方法应该可以从帮助
    Win32 Programmer's Reference -> Coordinate Spaces and Transformations 里面找到。
    但是更多的点就不知道该怎么做了
      

  4.   

    记得以前学过拉格朗日插值多项式。要经过N个(xi, yi)的一个方程式为
    y=f1(x)+f2(x)+...+fN(x)
    其中的fi(x)=xi*(x-x1)(x-x2)*...*(x-x[i-1])*(x-x[i+1])/( (xi-x1)*(xi-x2)*...*(xi-x[i-1])*(xi-x[i+1])*...*(xi-xn) )
    类似的,对于2D坐标的转换也可以拼凑出类似的方程。
    假设坐标转换方程为
    f(P)=(Q),其中的P,Q为2维坐标中的点。要求满足
    f(P1)=(Q1), f(P2)=(Q2), ..., f(PN)= (QN),那么可以推出类似的转换
    X方向的坐标转换为
    X = X1(x,y)+X2(x,y)+...+XN(x,y)
    其中的Xi为
    Xi(P)= Xi*Dis(P,Q1)*Dis(P,Q2)*...*Dis(P,Q[i-1])*Dis(P,Q[i+1])*...*Dis(P,QN)/( Dis(Pi,Q1)*Dis(Pi,Q2)*...*Dis(Pi,Q[i-1])*Dis(Pi,Q[i+1])*...*Dis(Pi,QN) )
    其中的Dis(P,Q)为P,Q之间的距离。
    Y方向的坐标转换是类似的。这只是一个理论上的映射方程,不知道谁能从方程推导出转换后的图片