61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| """
 | |
| This script will compare tho images and decides with a threshold
 | |
| if these to images are "equal enough"
 | |
| """
 | |
| 
 | |
| # import the necessary things for OpenCV
 | |
| from cv import *
 | |
| from highgui import *
 | |
| 
 | |
| import frames
 | |
| import sys
 | |
| import os
 | |
| 
 | |
| PREFIX=os.path.join(os.environ["srcdir"],"../../opencv_extra/testdata/python/images/")
 | |
| 
 | |
| 
 | |
| DisplayImages=False
 | |
| 
 | |
| if DisplayImages:
 | |
| 	videowindow="video"
 | |
| 	referencewindow="reference"
 | |
| 	cvNamedWindow(videowindow,CV_WINDOW_AUTOSIZE)
 | |
| 	cvNamedWindow(referencewindow,CV_WINDOW_AUTOSIZE)
 | |
| 
 | |
| # returns True/False if match/non-match
 | |
| def match( image, index, thres ):
 | |
| 
 | |
| # load image from comparison set
 | |
| 	QCIFcompare=cvLoadImage(PREFIX+frames.QCIF[index])
 | |
| 
 | |
| 	if QCIFcompare is None:
 | |
| 		print "Couldn't open image "+PREFIX+frames.QCIF[index]+" for comparison!"
 | |
| 		sys.exit(1)
 | |
| 
 | |
| # resize comparison image to input image dimensions
 | |
| 	size=cvSize(image.width,image.height)
 | |
| 	compare=cvCreateImage(size,IPL_DEPTH_8U,image.nChannels)
 | |
| 	cvResize(QCIFcompare,compare)
 | |
| 
 | |
| # compare images
 | |
| 	diff=cvNorm( image, compare, CV_RELATIVE_L2 )
 | |
| 
 | |
| 	if DisplayImages:
 | |
| 		cvShowImage(videowindow,image)
 | |
| 		cvShowImage(referencewindow,compare)
 | |
| 		if diff<=thres:
 | |
| 			cvWaitKey(200)
 | |
| 		else:
 | |
| 			print "index==",index,": max==",thres," is==",diff
 | |
| 			cvWaitKey(5000)
 | |
| 
 | |
| 	cvReleaseImage(QCIFcompare)
 | |
| 	cvReleaseImage(compare)
 | |
| 
 | |
| 	if diff<=thres:
 | |
| 		return True
 | |
| 	else:
 | |
| 		return False
 | |
| 
 | |
| 
 | 
