logpolar.py 1.36 KB
Newer Older
1 2 3
#!/usr/bin/python
import sys
import urllib2
4
import cv2.cv as cv
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

src=None
dst=None
src2=None

def on_mouse(event, x, y, flags, param):

    if not src:
        return

    if event==cv.CV_EVENT_LBUTTONDOWN:
        cv.LogPolar(src, dst, (x, y), 40, cv.CV_INTER_LINEAR + cv.CV_WARP_FILL_OUTLIERS)
        cv.LogPolar(dst, src2, (x, y), 40, cv.CV_INTER_LINEAR + cv.CV_WARP_FILL_OUTLIERS + cv.CV_WARP_INVERSE_MAP)
        cv.ShowImage("log-polar", dst)
        cv.ShowImage("inverse log-polar", src2)

if __name__ == "__main__":
22

23 24 25
    if len(sys.argv) > 1:
        src = cv.LoadImage( sys.argv[1], cv.CV_LOAD_IMAGE_COLOR)
    else:
26
        url = 'http://code.opencv.org/projects/opencv/repository/revisions/master/raw/samples/c/fruits.jpg'
27 28 29 30
        filedata = urllib2.urlopen(url).read()
        imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1)
        cv.SetData(imagefiledata, filedata, len(filedata))
        src = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR)
31

32 33 34
    cv.NamedWindow("original", 1)
    cv.NamedWindow("log-polar", 1)
    cv.NamedWindow("inverse log-polar", 1)
35 36


37 38
    dst = cv.CreateImage((256, 256), 8, 3)
    src2 = cv.CreateImage(cv.GetSize(src), 8, 3)
39

40 41
    cv.SetMouseCallback("original", on_mouse)
    on_mouse(cv.CV_EVENT_LBUTTONDOWN, src.width/2, src.height/2, None, None)
42

43 44
    cv.ShowImage("original", src)
    cv.WaitKey()
45
    cv.DestroyAllWindows()