Exemple #1
0
def houghtlines(image):
   block_size = 0
   timage=image.mean(axis=2).astype(numpy.uint8)
   storage = zopencv.cvCreateMemStorage ( block_size )
   pt1=zopencv.CvPoint()
   pt2=zopencv.CvPoint()
   lines = zopencv.cvHoughLines2(timage, storage.get_pointer(), zopencv.CV_HOUGH_STANDARD, 1, zopencv.CV_PI/180, 100, 0, 0 )
   #cvFlip(image)
   BIG=image.shape[0]+image.shape[1]
   resimage=image.copy('C')
   for i in range(min(lines.total,100)):
       line = zopencv.zopencv_pclasses.PointerOnCvPoint2D32f(zopencv.cvGetSeqElem(lines,i));
       rho = line.x;
       theta = line.y;
       a = math.cos(theta)
       b = math.sin(theta)
       x0 = a*rho
       y0 = b*rho
       pt1.x = zopencv.cvRound(x0 + BIG*(-b))
       pt1.y = zopencv.cvRound(y0 + BIG*(a))
       pt2.x = zopencv.cvRound(x0 - BIG*(-b))
       pt2.y = zopencv.cvRound(y0 - BIG*(a))
       color=zopencv.cvScalar(255,0,0,0)
       zopencv.cvLine(resimage, pt1, pt2, color, 1, 1,0 )#zopencv.CV_RGB(255,0,0
   zopencv.cvReleaseMemStorage(storage.get_pointer_on_pointer())
   return resimage
Exemple #2
0
def shitomasi(image, quality_level = 0.1, min_distance = 5, eig_block_size = 3, use_harris = 0,MAX_CORNERS = 100,k=0.04):
                timage=image.mean(axis=2).astype(numpy.uint8)
		cornersn=numpy.zeros((MAX_CORNERS,2),dtype=numpy.float32)
		corners=zopencv.zopencv_pclasses.PointerOnCvPoint2D32f(zopencv.zopencv_core.memory_addr_of_numpy_array(cornersn))
		corner_count = numpy.array([MAX_CORNERS],dtype=int)
                mask=zopencv.zopencv_pclasses.PointerOnCvMat(0)
		eig_image=timage.astype(numpy.float32)
		temp_image=timage.astype(numpy.float32)
		zopencv.cvGoodFeaturesToTrack(timage,
				eig_image,                    
				temp_image,
				corners.get_pointer(),
				corner_count,
				quality_level,
				min_distance,
				mask.get_pointer(),
				eig_block_size,
				use_harris,
                                k)
		return cornersn