Poignée x,y
comme paramètre d'interpolation cubique
si xs,ys
est la résolution de l'image cible alors:
u=(3.0*x)/xs
v=(3.0*y)/ys
maintenant interpolation cubique est généralement fait sur le paramètre t=<0.0,1.0)
donc
si u=<0.0,1.0>
utilisation t=u
et points de contrôle 0,1,2,3
.
si u=<1.0,2.0)
utilisation t=u-1.0
et des points de contrôle 1,2,3,4
si u=<2.0,3.0>
utilisation t=u-2.0
et des points de contrôle 2,3,4,5
en va de même pour les contours verticaux et v
. Compute xi,yi
en tant que interpolation bi bi de (u,v)
. Et pixel copie:
dst(x,y)=src(xi,yi);
Ceci est juste le plus proche voisin, mais vous pouvez également utiliser bilinéaire pour cette ... Comme courbe cube j'utiliser ce polynomial.
L'idée derrière l'interpolation bi-cubique est facile. point de calcul correspondant au paramètre u
sur 4 contours horizontaux. Cela vous donnera 4 points de contrôle pour l'interpolation cubique finale dans la direction verticale et v
comme paramètre. La coordonnée résultante est la position de votre pixel source.
http://docs.opencv.org/trunk/da/d6e/tutorial_py_geometric_transformations.html –
voir [vue OpenCV Birdseye sans perte de données] (http : //stackoverflow.com/a/39316776/2521214) donc trouver les points de bord et utiliser l'interpolation bilinéaire ou bicubique pour redresser l'image – Spektre
qui était tellement sur ma tête, visuellement je peux dire ce qui se passe mais assez perdu. Tout livre que vous recommandez qui m'aura aller à la vitesse. –