Пример #1
0
 def __findcurve(self, img):
     storage = cv.cvCreateMemStorage(0)
     nb_contours, cont = cv.cvFindContours(img, storage,
                                           cv.sizeof_CvContour,
                                           cv.CV_RETR_LIST,
                                           cv.CV_CHAIN_APPROX_NONE,
                                           cv.cvPoint(0, 0))
     cidx = int(random.random() * len(color))
     if (self.drawcontour):
         cv.cvDrawContours(self.drawimg, cont, _white, _white, 1, 1,
                           cv.CV_AA, cv.cvPoint(0, 0))
     idx = 0
     for c in cont.hrange():
         PointArray = cv.cvCreateMat(1, c.total, cv.CV_32SC2)
         PointArray2D32f = cv.cvCreateMat(1, c.total, cv.CV_32FC2)
         cv.cvCvtSeqToArray(c, PointArray,
                            cv.cvSlice(0, cv.CV_WHOLE_SEQ_END_INDEX))
         fpoints = []
         for i in range(c.total):
             kp = myPoint()
             kp.x = cv.cvGet2D(PointArray, 0, i)[0]
             kp.y = cv.cvGet2D(PointArray, 0, i)[1]
             kp.index = idx
             idx += 1
             fpoints.append(kp)
         self.allcurve.append(fpoints)
     self.curvelength = idx
Пример #2
0
 def __findcurve(self, img):
     storage = cv.cvCreateMemStorage(0)
     nb_contours, cont = cv.cvFindContours (img,
         storage,
         cv.sizeof_CvContour,
         cv.CV_RETR_LIST,
         cv.CV_CHAIN_APPROX_NONE,
         cv.cvPoint (0,0))
     cidx = int(random.random() * len(color))
     if (self.drawcontour):
         cv.cvDrawContours (self.drawimg, cont, _white, _white, 1, 1, cv.CV_AA, cv.cvPoint (0, 0))
     idx = 0
     for c in cont.hrange():
         PointArray = cv.cvCreateMat(1, c.total, cv.CV_32SC2)
         PointArray2D32f= cv.cvCreateMat( 1, c.total  , cv.CV_32FC2)
         cv.cvCvtSeqToArray(c, PointArray, cv.cvSlice(0, cv.CV_WHOLE_SEQ_END_INDEX))
         fpoints = []
         for i in range(c.total):
             kp = myPoint()
             kp.x = cv.cvGet2D(PointArray,0, i)[0]
             kp.y = cv.cvGet2D(PointArray,0, i)[1]
             kp.index = idx
             idx += 1
             fpoints.append(kp)
         self.allcurve.append(fpoints)
     self.curvelength = idx
Пример #3
0
 def __findContour(self, filename): #find the contour of images, and save all points in self.vKeyPoints
     self.img = highgui.cvLoadImage (filename)
     self.grayimg = cv.cvCreateImage(cv.cvSize(self.img.width, self.img.height), 8,1)
     self.drawimg = cv.cvCreateImage(cv.cvSize(self.img.width, self.img.height), 8,3)
     cv.cvCvtColor (self.img, self.grayimg, cv.CV_BGR2GRAY)
     cv.cvSmooth(self.grayimg, self.grayimg, cv.CV_BLUR, 9)
     cv.cvSmooth(self.grayimg, self.grayimg, cv.CV_BLUR, 9)
     cv.cvSmooth(self.grayimg, self.grayimg, cv.CV_BLUR, 9)
     cv.cvThreshold( self.grayimg, self.grayimg, self.threshold, self.threshold +100, cv.CV_THRESH_BINARY )
     cv.cvZero(self.drawimg)
     storage = cv.cvCreateMemStorage(0)
     nb_contours, cont = cv.cvFindContours (self.grayimg,
         storage,
         cv.sizeof_CvContour,
         cv.CV_RETR_LIST,
         cv.CV_CHAIN_APPROX_NONE,
         cv.cvPoint (0,0))
         
     cv.cvDrawContours (self.drawimg, cont, cv.cvScalar(255,255,255,0), cv.cvScalar(255,255,255,0), 1, 1, cv.CV_AA, cv.cvPoint (0, 0))
     self.allcurve = []
     idx = 0
     for c in cont.hrange():
         PointArray = cv.cvCreateMat(1, c.total  , cv.CV_32SC2)
         PointArray2D32f= cv.cvCreateMat( 1, c.total  , cv.CV_32FC2)
         cv.cvCvtSeqToArray(c, PointArray, cv.cvSlice(0, cv.CV_WHOLE_SEQ_END_INDEX))
         fpoints = []
         for i in range(c.total):
             kp = myPoint()
             kp.x = cv.cvGet2D(PointArray,0, i)[0]
             kp.y = cv.cvGet2D(PointArray,0, i)[1]
             kp.index = idx
             idx += 1
             fpoints.append(kp)
         self.allcurve.append(fpoints)
     self.curvelength = idx
Пример #4
0
	def __calculate(self):
		print "I want to calculate an image"
		size = cv.cvGetSize(self.origImage)
		
		result = cv.cvCreateMat(size.height,size.width,cv.CV_32FC1)
		row_sums = cv.cvCreateMat(size.height,size.width,cv.CV_32FC1)
		for i in range(size.height):
			for j in range(size.width):
				image_value = cv.cvGet2D(self.origImage,i,j)
				image_value = image_value[0]
				prev_row_sum = 0

				if(i == 0):
					cv.cvmSet(row_sums,i,j,image_value)
				else:
					prev_row_sum = cv.cvmGet(row_sums,i-1,j)
					cv.cvmSet(row_sums,i,j,image_value+prev_row_sum)
				
				if(j == 0):	
					cv.cvmSet(result,i,j,prev_row_sum+image_value)
				else:
					prev_result = cv.cvmGet(result,i,j-1)
					cv.cvmSet(result,i,j,prev_row_sum+image_value+prev_result)
	
				if(i == 0 and j == 0):
					print "image_value:",image_value
					print "prev_row_sum:",prev_row_sum	
		return result
Пример #5
0
def putoriginal(fname, img):
    ori_img = highgui.cvLoadImage (fname)
    ori_img_thumb = cv.cvCreateImage(cv.cvSize(ori_img.width/4, ori_img.height/4), 8,3)
    cv.cvResize(ori_img, ori_img_thumb)
    for x in range(ori_img_thumb.height):
        for y in range(ori_img_thumb.width):
            cv.cvSet2D(img, x, y, cv.cvGet2D(ori_img_thumb, x, y))
    return 
Пример #6
0
def putoriginal(fname, img):
    ori_img = highgui.cvLoadImage(fname)
    ori_img_thumb = cv.cvCreateImage(
        cv.cvSize(ori_img.width / 4, ori_img.height / 4), 8, 3)
    cv.cvResize(ori_img, ori_img_thumb)
    for x in range(ori_img_thumb.height):
        for y in range(ori_img_thumb.width):
            cv.cvSet2D(img, x, y, cv.cvGet2D(ori_img_thumb, x, y))
    return
Пример #7
0
def mouseClick(event, x, y, flags, param):
    if event == CV_EVENT_LBUTTONUP:
        frame = cvQueryFrame(CAM)
        hlsFrame = cvCreateImage(cvSize(frameWidth, frameHeight), IPL_DEPTH_8U, 3)
        cvCvtColor(frame, hlsFrame, CV_BGR2HLS)

        pixel = cvGet2D(hlsFrame, y, x)
                
        setHlsFilter('hmax', pixel[0])      
        setHlsFilter('hmin', pixel[0])        
        #setHlsFilter('lmax', pixel[1])        
        #setHlsFilter('lmin', pixel[1])        
        setHlsFilter('smax', pixel[2])        
        setHlsFilter('smin', pixel[2])        
Пример #8
0
                    py = size.height-1

                cv.cvSet2D(img,py,px,color)

def calcBox(iimg, x, y, size):
	point1 =  cv.cvmGet(iimg,x,y)
	point2 =  cv.cvmGet(iimg,x+size,y+size)
	point3 =  cv.cvmGet(iimg,x,y+size)
	point4 =  cv.cvmGet(iimg,x+size,y)
	return (point1+point2)-(point3+point4)

size = cv.cvGetSize(image)
sum = 0
for i in range(1,5):#size.height):
	for j in range(1,5):
		sum = sum + cv.cvGet2D(image,i,j)[0]

print sum
#print cv.cvmGet(iimg.integralImage,size.height-1,size.width-1)
print calcBox(iimg.integralImage,1,1,4)

boxSize = 16
bestValue = -999999.9
best_i = 0
best_j = 0
for i in range(size.height-boxSize):
	for j in range(size.width-boxSize):
		box1 = calcBox(iimg.integralImage,i,j,boxSize)
		box2 = calcBox(iimg.integralImage,i+6,j+6,4)
		value = box2*box2/box1
		if(value > bestValue):