Update to 2.0.0 tree from current Fremantle build
[opencv] / tests / swig_python / highgui / match.py
diff --git a/tests/swig_python/highgui/match.py b/tests/swig_python/highgui/match.py
new file mode 100755 (executable)
index 0000000..b0822f9
--- /dev/null
@@ -0,0 +1,60 @@
+"""
+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
+
+