summaryrefslogtreecommitdiff
path: root/warp.py
diff options
context:
space:
mode:
Diffstat (limited to 'warp.py')
-rw-r--r--warp.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/warp.py b/warp.py
new file mode 100644
index 0000000..2272a37
--- /dev/null
+++ b/warp.py
@@ -0,0 +1,49 @@
+import math
+import cv2
+import numpy
+
+xlist=[]
+ylist=[]
+
+xres=1280
+yres=720
+
+#constant = 1./math.sqrt((xres/2)**2 + (yres/2)**2)
+constant = 1./(xres/2.)*30./42.
+
+for y in xrange(0,yres):
+ xtmp=[]
+ ytmp=[]
+
+ yy=(y-yres/2.)/yres*720
+ for x in xrange(0,xres):
+ xx=(x-xres/2.)/xres*1280
+
+ dist = math.sqrt(xx**2 + yy**2)
+
+ if (dist != 0):
+ xtmp=xtmp+[ 1280/2+ xx/dist/constant*math.atan(constant*dist) ]
+ ytmp=ytmp+[ 720/2 + yy/dist/constant*math.atan(constant*dist) ]
+ else:
+ xtmp=xtmp+[0+1280/2]
+ ytmp=ytmp+[0+720/2]
+
+ xlist=xlist+[xtmp]
+ ylist=ylist+[ytmp]
+
+ if y % 10 == 0:
+ print y
+
+xmap=numpy.array(xlist).astype('float32')
+ymap=numpy.array(ylist).astype('float32')
+
+img=cv2.imread("../cam42.png")
+img2=cv2.remap(img, xmap, ymap, cv2.INTER_CUBIC)
+
+cv2.imshow("orig", img)
+cv2.imshow("remap", img2)
+
+print img2.shape
+
+while cv2.waitKey(50) & 256 != ord("q"):
+ pass