Update to 2.0.0 tree from current Fremantle build
[opencv] / samples / python / cam-histo.py
diff --git a/samples/python/cam-histo.py b/samples/python/cam-histo.py
deleted file mode 100755 (executable)
index 78e7e84..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-#! /usr/bin/env python
-
-import sys
-
-# import the necessary things for OpenCV
-from opencv import cv
-from opencv import highgui
-
-#############################################################################
-# definition of some constants
-
-# how many bins we want for the histogram, and their ranges
-hdims = 16
-hranges = [[0, 180]]
-
-# ranges for the limitation of the histogram
-vmin = 10
-vmax = 256
-smin = 30
-
-# the range we want to monitor
-hsv_min = cv.cvScalar (0, smin, vmin, 0)
-hsv_max = cv.cvScalar (180, 256, vmax, 0)
-
-#############################################################################
-# some useful functions
-
-def hsv2rgb (hue):
-    # convert the hue value to the corresponding rgb value
-
-    sector_data = [[0, 2, 1],
-                   [1, 2, 0],
-                   [1, 0, 2],
-                   [2, 0, 1],
-                   [2, 1, 0],
-                   [0, 1, 2]]
-    hue *= 0.1 / 3
-    sector = cv.cvFloor (hue)
-    p = cv.cvRound (255 * (hue - sector))
-    if sector & 1:
-        p ^= 255
-
-    rgb = {}
-    rgb [sector_data [sector][0]] = 255
-    rgb [sector_data [sector][1]] = 0
-    rgb [sector_data [sector][2]] = p
-
-    return cv.cvScalar (rgb [2], rgb [1], rgb [0], 0)
-
-#############################################################################
-# so, here is the main part of the program
-
-if __name__ == '__main__':
-
-    # a small welcome
-    print "OpenCV Python wrapper test"
-    print "OpenCV version: %s (%d, %d, %d)" % (cv.CV_VERSION,
-                                               cv.CV_MAJOR_VERSION,
-                                               cv.CV_MINOR_VERSION,
-                                               cv.CV_SUBMINOR_VERSION)
-
-    # first, create the necessary windows
-    highgui.cvNamedWindow ('Camera', highgui.CV_WINDOW_AUTOSIZE)
-    highgui.cvNamedWindow ('Histogram', highgui.CV_WINDOW_AUTOSIZE)
-
-    # move the new window to a better place
-    highgui.cvMoveWindow ('Camera', 10, 40)
-    highgui.cvMoveWindow ('Histogram', 10, 270)
-
-    try:
-        # try to get the device number from the command line
-        device = int (sys.argv [1])
-
-        # got it ! so remove it from the arguments
-        del sys.argv [1]
-    except (IndexError, ValueError):
-        # no device number on the command line, assume we want the 1st device
-        device = 0
-
-    if len (sys.argv) == 1:
-        # no argument on the command line, try to use the camera
-        capture = highgui.cvCreateCameraCapture (device)
-
-        # set the wanted image size from the camera
-        highgui.cvSetCaptureProperty (capture,
-                                      highgui.CV_CAP_PROP_FRAME_WIDTH, 320)
-        highgui.cvSetCaptureProperty (capture,
-                                      highgui.CV_CAP_PROP_FRAME_HEIGHT, 240)
-    else:
-        # we have an argument on the command line,
-        # we can assume this is a file name, so open it
-        capture = highgui.cvCreateFileCapture (sys.argv [1])            
-
-    # check that capture device is OK
-    if not capture:
-        print "Error opening capture device"
-        sys.exit (1)
-        
-    # create an image to put in the histogram
-    histimg = cv.cvCreateImage (cv.cvSize (320,240), 8, 3)
-
-    # init the image of the histogram to black
-    cv.cvSetZero (histimg)
-
-    # capture the 1st frame to get some propertie on it
-    frame = highgui.cvQueryFrame (capture)
-
-    # get some properties of the frame
-    frame_size = cv.cvGetSize (frame)
-
-    # compute which selection of the frame we want to monitor
-    selection = cv.cvRect (0, 0, frame.width, frame.height)
-
-    # create some images usefull later
-    hue = cv.cvCreateImage (frame_size, 8, 1)
-    mask = cv.cvCreateImage (frame_size, 8, 1)
-    hsv = cv.cvCreateImage (frame_size, 8, 3 )
-
-    # create the histogram
-    hist = cv.cvCreateHist ([hdims], cv.CV_HIST_ARRAY, hranges, 1)
-
-    while 1:
-        # do forever
-
-        # 1. capture the current image
-        frame = highgui.cvQueryFrame (capture)
-        if frame is None:
-            # no image captured... end the processing
-            break
-
-        # mirror the captured image
-        cv.cvFlip (frame, None, 1)
-
-        # compute the hsv version of the image 
-        cv.cvCvtColor (frame, hsv, cv.CV_BGR2HSV)
-
-        # compute which pixels are in the wanted range
-        cv.cvInRangeS (hsv, hsv_min, hsv_max, mask)
-
-        # extract the hue from the hsv array
-        cv.cvSplit (hsv, hue, None, None, None)
-
-        # select the rectangle of interest in the hue/mask arrays
-        hue_roi = cv.cvGetSubRect (hue, selection)
-        mask_roi = cv.cvGetSubRect (mask, selection)
-
-        # it's time to compute the histogram
-        cv.cvCalcHist (hue_roi, hist, 0, mask_roi)
-
-        # extract the min and max value of the histogram
-        min_val, max_val, min_idx, max_idx = cv.cvGetMinMaxHistValue (hist)
-
-        # compute the scale factor
-        if max_val > 0:
-            scale = 255. / max_val
-        else:
-            scale = 0.
-
-        # scale the histograms
-        cv.cvConvertScale (hist.bins, hist.bins, scale, 0)
-
-        # clear the histogram image
-        cv.cvSetZero (histimg)
-
-        # compute the width for each bin do display
-        bin_w = histimg.width / hdims
-        
-        for  i in range (hdims):
-            # for all the bins
-
-            # get the value, and scale to the size of the hist image
-            val = cv.cvRound (cv.cvGetReal1D (hist.bins, i)
-                              * histimg.height / 255)
-
-            # compute the color
-            color = hsv2rgb (i * 180. / hdims)
-
-            # draw the rectangle in the wanted color
-            cv.cvRectangle (histimg,
-                            cv.cvPoint (i * bin_w, histimg.height),
-                            cv.cvPoint ((i + 1) * bin_w, histimg.height - val),
-                            color, -1, 8, 0)
-
-        # we can now display the images
-        highgui.cvShowImage ('Camera', frame)
-        highgui.cvShowImage ('Histogram', histimg)
-
-        # handle events
-        k = highgui.cvWaitKey (10)
-
-        if k == '\x1b':
-            # user has press the ESC key, so exit
-            break