46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python
 | |
| import sys
 | |
| import urllib2
 | |
| import cv2.cv as cv
 | |
| 
 | |
| 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__":
 | |
| 
 | |
|     if len(sys.argv) > 1:
 | |
|         src = cv.LoadImage( sys.argv[1], cv.CV_LOAD_IMAGE_COLOR)
 | |
|     else:
 | |
|         url = 'http://code.opencv.org/projects/opencv/repository/revisions/master/raw/samples/c/fruits.jpg'
 | |
|         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)
 | |
| 
 | |
|     cv.NamedWindow("original", 1)
 | |
|     cv.NamedWindow("log-polar", 1)
 | |
|     cv.NamedWindow("inverse log-polar", 1)
 | |
| 
 | |
| 
 | |
|     dst = cv.CreateImage((256, 256), 8, 3)
 | |
|     src2 = cv.CreateImage(cv.GetSize(src), 8, 3)
 | |
| 
 | |
|     cv.SetMouseCallback("original", on_mouse)
 | |
|     on_mouse(cv.CV_EVENT_LBUTTONDOWN, src.width/2, src.height/2, None, None)
 | |
| 
 | |
|     cv.ShowImage("original", src)
 | |
|     cv.WaitKey()
 | |
|     cv.DestroyAllWindows()
 |