added COLOR_... enumeration to imgproc.hpp and EVENT_... enumeration to highgui.hpp
authorVadim Pisarevsky <no@email>
Mon, 18 Jul 2011 13:05:34 +0000 (13:05 +0000)
committerVadim Pisarevsky <no@email>
Mon, 18 Jul 2011 13:05:34 +0000 (13:05 +0000)
16 files changed:
modules/highgui/include/opencv2/highgui/highgui.hpp
modules/imgproc/include/opencv2/imgproc/imgproc.hpp
samples/python2/calibrate.py
samples/python2/coherence.py
samples/python2/color_histogram.py
samples/python2/common.py
samples/python2/distrans.py
samples/python2/edge.py
samples/python2/find_obj.py
samples/python2/floodfill.py
samples/python2/lk_track.py
samples/python2/motempl.py
samples/python2/obj_detect.py
samples/python2/opt_flow.py
samples/python2/stereo_match.py
samples/python2/watershed.py

index 094aeda..0f7e5d4 100644 (file)
@@ -101,6 +101,30 @@ CV_EXPORTS int createTrackbar( const string& trackbarname, const string& winname
 CV_EXPORTS_W int getTrackbarPos( const string& trackbarname, const string& winname );
 CV_EXPORTS_W void setTrackbarPos( const string& trackbarname, const string& winname, int pos );
 
+enum
+{
+    EVENT_MOUSEMOVE      =0,
+    EVENT_LBUTTONDOWN    =1,
+    EVENT_RBUTTONDOWN    =2,
+    EVENT_MBUTTONDOWN    =3,
+    EVENT_LBUTTONUP      =4,
+    EVENT_RBUTTONUP      =5,
+    EVENT_MBUTTONUP      =6,
+    EVENT_LBUTTONDBLCLK  =7,
+    EVENT_RBUTTONDBLCLK  =8,
+    EVENT_MBUTTONDBLCLK  =9
+};
+
+enum
+{
+    EVENT_FLAG_LBUTTON   =1,
+    EVENT_FLAG_RBUTTON   =2,
+    EVENT_FLAG_MBUTTON   =4,
+    EVENT_FLAG_CTRLKEY   =8,
+    EVENT_FLAG_SHIFTKEY  =16,
+    EVENT_FLAG_ALTKEY    =32
+};
+        
 typedef void (*MouseCallback )(int event, int x, int y, int flags, void* param);
 
 //! assigns callback for mouse events
index b95f7a9..f45cf49 100644 (file)
@@ -750,6 +750,148 @@ CV_EXPORTS_W int floodFill( InputOutputArray image, InputOutputArray mask,
                             Scalar loDiff=Scalar(), Scalar upDiff=Scalar(),
                             int flags=4 );
 
+    
+enum
+{
+    COLOR_BGR2BGRA    =0,
+    COLOR_RGB2RGBA    =COLOR_BGR2BGRA,
+    
+    COLOR_BGRA2BGR    =1,
+    COLOR_RGBA2RGB    =COLOR_BGRA2BGR,
+    
+    COLOR_BGR2RGBA    =2,
+    COLOR_RGB2BGRA    =COLOR_BGR2RGBA,
+    
+    COLOR_RGBA2BGR    =3,
+    COLOR_BGRA2RGB    =COLOR_RGBA2BGR,
+    
+    COLOR_BGR2RGB     =4,
+    COLOR_RGB2BGR     =COLOR_BGR2RGB,
+    
+    COLOR_BGRA2RGBA   =5,
+    COLOR_RGBA2BGRA   =COLOR_BGRA2RGBA,
+    
+    COLOR_BGR2GRAY    =6,
+    COLOR_RGB2GRAY    =7,
+    COLOR_GRAY2BGR    =8,
+    COLOR_GRAY2RGB    =COLOR_GRAY2BGR,
+    COLOR_GRAY2BGRA   =9,
+    COLOR_GRAY2RGBA   =COLOR_GRAY2BGRA,
+    COLOR_BGRA2GRAY   =10,
+    COLOR_RGBA2GRAY   =11,
+    
+    COLOR_BGR2BGR565  =12,
+    COLOR_RGB2BGR565  =13,
+    COLOR_BGR5652BGR  =14,
+    COLOR_BGR5652RGB  =15,
+    COLOR_BGRA2BGR565 =16,
+    COLOR_RGBA2BGR565 =17,
+    COLOR_BGR5652BGRA =18,
+    COLOR_BGR5652RGBA =19,
+    
+    COLOR_GRAY2BGR565 =20,
+    COLOR_BGR5652GRAY =21,
+    
+    COLOR_BGR2BGR555  =22,
+    COLOR_RGB2BGR555  =23,
+    COLOR_BGR5552BGR  =24,
+    COLOR_BGR5552RGB  =25,
+    COLOR_BGRA2BGR555 =26,
+    COLOR_RGBA2BGR555 =27,
+    COLOR_BGR5552BGRA =28,
+    COLOR_BGR5552RGBA =29,
+    
+    COLOR_GRAY2BGR555 =30,
+    COLOR_BGR5552GRAY =31,
+    
+    COLOR_BGR2XYZ     =32,
+    COLOR_RGB2XYZ     =33,
+    COLOR_XYZ2BGR     =34,
+    COLOR_XYZ2RGB     =35,
+    
+    COLOR_BGR2YCrCb   =36,
+    COLOR_RGB2YCrCb   =37,
+    COLOR_YCrCb2BGR   =38,
+    COLOR_YCrCb2RGB   =39,
+    
+    COLOR_BGR2HSV     =40,
+    COLOR_RGB2HSV     =41,
+    
+    COLOR_BGR2Lab     =44,
+    COLOR_RGB2Lab     =45,
+    
+    COLOR_BayerBG2BGR =46,
+    COLOR_BayerGB2BGR =47,
+    COLOR_BayerRG2BGR =48,
+    COLOR_BayerGR2BGR =49,
+    
+    COLOR_BayerBG2RGB =COLOR_BayerRG2BGR,
+    COLOR_BayerGB2RGB =COLOR_BayerGR2BGR,
+    COLOR_BayerRG2RGB =COLOR_BayerBG2BGR,
+    COLOR_BayerGR2RGB =COLOR_BayerGB2BGR,
+    
+    COLOR_BGR2Luv     =50,
+    COLOR_RGB2Luv     =51,
+    COLOR_BGR2HLS     =52,
+    COLOR_RGB2HLS     =53,
+    
+    COLOR_HSV2BGR     =54,
+    COLOR_HSV2RGB     =55,
+    
+    COLOR_Lab2BGR     =56,
+    COLOR_Lab2RGB     =57,
+    COLOR_Luv2BGR     =58,
+    COLOR_Luv2RGB     =59,
+    COLOR_HLS2BGR     =60,
+    COLOR_HLS2RGB     =61,
+    
+    COLOR_BayerBG2BGR_VNG =62,
+    COLOR_BayerGB2BGR_VNG =63,
+    COLOR_BayerRG2BGR_VNG =64,
+    COLOR_BayerGR2BGR_VNG =65,
+    
+    COLOR_BayerBG2RGB_VNG =COLOR_BayerRG2BGR_VNG,
+    COLOR_BayerGB2RGB_VNG =COLOR_BayerGR2BGR_VNG,
+    COLOR_BayerRG2RGB_VNG =COLOR_BayerBG2BGR_VNG,
+    COLOR_BayerGR2RGB_VNG =COLOR_BayerGB2BGR_VNG,
+    
+    COLOR_BGR2HSV_FULL = 66,
+    COLOR_RGB2HSV_FULL = 67,
+    COLOR_BGR2HLS_FULL = 68,
+    COLOR_RGB2HLS_FULL = 69,
+    
+    COLOR_HSV2BGR_FULL = 70,
+    COLOR_HSV2RGB_FULL = 71,
+    COLOR_HLS2BGR_FULL = 72,
+    COLOR_HLS2RGB_FULL = 73,
+    
+    COLOR_LBGR2Lab     = 74,
+    COLOR_LRGB2Lab     = 75,
+    COLOR_LBGR2Luv     = 76,
+    COLOR_LRGB2Luv     = 77,
+    
+    COLOR_Lab2LBGR     = 78,
+    COLOR_Lab2LRGB     = 79,
+    COLOR_Luv2LBGR     = 80,
+    COLOR_Luv2LRGB     = 81,
+    
+    COLOR_BGR2YUV      = 82,
+    COLOR_RGB2YUV      = 83,
+    COLOR_YUV2BGR      = 84,
+    COLOR_YUV2RGB      = 85,
+    
+    COLOR_BayerBG2GRAY = 86,
+    COLOR_BayerGB2GRAY = 87,
+    COLOR_BayerRG2GRAY = 88,
+    COLOR_BayerGR2GRAY = 89,
+    
+    COLOR_YUV420i2RGB  = 90,
+    COLOR_YUV420i2BGR  = 91,
+    
+    COLOR_COLORCVT_MAX  =100
+};
+    
+    
 //! converts image from one color space to another
 CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn=0 );
 
index 877364a..96ec3ad 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 import os\r
 from common import splitfn\r
 \r
@@ -39,7 +38,7 @@ if __name__ == '__main__':
             term = ( cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_COUNT, 30, 0.1 )\r
             cv2.cornerSubPix(img, corners, (5, 5), (-1, -1), term)\r
         if debug_dir:\r
-            vis = cv2.cvtColor(img, cv.CV_GRAY2BGR)\r
+            vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)\r
             cv2.drawChessboardCorners(vis, pattern_size, corners, found)\r
             path, name, ext = splitfn(fn)\r
             cv2.imwrite('%s/%s_chess.bmp' % (debug_dir, name), vis)\r
index f6f2827..191f721 100644 (file)
@@ -8,8 +8,6 @@
 \r
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
-\r
 \r
 def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4):\r
     h, w = img.shape[:2]\r
@@ -17,7 +15,7 @@ def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4):
     for i in xrange(iter_n):\r
         print i,\r
         \r
-        gray = cv2.cvtColor(img, cv.CV_BGR2GRAY)\r
+        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\r
         eigen = cv2.cornerEigenValsAndVecs(gray, str_sigma, 3)\r
         eigen = eigen.reshape(h, w, 3, 2)  # [[e1, e2], v1, v2]\r
         x, y = eigen[:,:,1,0], eigen[:,:,1,1]\r
index b092c7d..87041fc 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 from time import clock\r
 import sys\r
 \r
@@ -11,7 +10,7 @@ h, s = np.indices(hsv_map.shape[:2])
 hsv_map[:,:,0] = h\r
 hsv_map[:,:,1] = s\r
 hsv_map[:,:,2] = 255\r
-hsv_map = cv2.cvtColor(hsv_map, cv.CV_HSV2BGR)\r
+hsv_map = cv2.cvtColor(hsv_map, cv2.COLOR_HSV2BGR)\r
 cv2.imshow('hsv_map', hsv_map)\r
 \r
 cv2.namedWindow('hist', 0)\r
@@ -32,7 +31,7 @@ while True:
     \r
     small = cv2.pyrDown(frame)\r
 \r
-    hsv = cv2.cvtColor(small, cv.CV_BGR2HSV)\r
+    hsv = cv2.cvtColor(small, cv2.COLOR_BGR2HSV)\r
     dark = hsv[...,2] < 32\r
     hsv[dark] = 0\r
     h = cv2.calcHist( [hsv], [0, 1], None, [180, 256], [0, 180, 0, 256] )\r
index 59de42f..e658602 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 import os\r
 \r
 image_extensions = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.tiff', '.pbm', '.pgm', '.ppm']\r
@@ -74,9 +73,9 @@ class Sketcher:
 \r
     def on_mouse(self, event, x, y, flags, param):\r
         pt = (x, y)\r
-        if event == cv.CV_EVENT_LBUTTONDOWN:\r
+        if event == cv2.EVENT_LBUTTONDOWN:\r
             self.prev_pt = pt\r
-        if self.prev_pt and flags & cv.CV_EVENT_FLAG_LBUTTON:\r
+        if self.prev_pt and flags & cv2.EVENT_FLAG_LBUTTON:\r
             for dst, color in zip(self.dests, self.colors_func()):\r
                 cv2.line(dst, self.prev_pt, pt, color, 5)\r
             self.dirty = True\r
index c200e7d..0a68ad4 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 from common import make_cmap\r
 \r
 help_message = '''USAGE: distrans.py [<image>]\r
index 371e729..9b72dd8 100644 (file)
@@ -1,5 +1,4 @@
 import cv2\r
-import cv2.cv as cv\r
 import video\r
 import sys\r
 \r
@@ -16,7 +15,7 @@ cv2.createTrackbar('thrs2', 'edge', 4000, 5000, nothing)
 cap = video.create_capture(fn)\r
 while True:\r
     flag, img = cap.read()\r
-    gray = cv2.cvtColor(img, cv.CV_BGR2GRAY)\r
+    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\r
     thrs1 = cv2.getTrackbarPos('thrs1', 'edge')\r
     thrs2 = cv2.getTrackbarPos('thrs2', 'edge')\r
     edge = cv2.Canny(gray, thrs1, thrs2, apertureSize=5)\r
index 5aaf293..1dc9c3c 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 from common import anorm\r
 \r
 help_message = '''SURF image match \r
@@ -25,7 +24,7 @@ def draw_match(img1, img2, p1, p2, status = None, H = None):
     vis = np.zeros((max(h1, h2), w1+w2), np.uint8)\r
     vis[:h1, :w1] = img1\r
     vis[:h2, w1:w1+w2] = img2\r
-    vis = cv2.cvtColor(vis, cv.CV_GRAY2BGR)\r
+    vis = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR)\r
 \r
     if H is not None:\r
         corners = np.float32([[0, 0], [w1, 0], [w1, h1], [0, h1]])\r
index 59987ca..3cc6c9d 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 \r
 help_message = '''USAGE: floodfill.py [<image>]\r
 \r
@@ -42,7 +41,7 @@ if __name__ == '__main__':
 \r
     def onmouse(event, x, y, flags, param):\r
         global seed_pt\r
-        if flags & cv.CV_EVENT_FLAG_LBUTTON:\r
+        if flags & cv2.EVENT_FLAG_LBUTTON:\r
             seed_pt = x, y\r
             update()\r
 \r
index e4290ff..0fe4cc6 100644 (file)
@@ -51,8 +51,8 @@ def main():
         vis = frame.copy()\r
         if len(tracks) > 0:\r
             p0 = np.float32([tr[-1] for tr in tracks]).reshape(-1, 1, 2)\r
-            img0 = cv2.cvtColor(prev_frame, cv.CV_BGR2GRAY)\r
-            img1 = cv2.cvtColor(frame, cv.CV_BGR2GRAY)\r
+            img0 = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY)\r
+            img1 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\r
             if old_mode:\r
                 p1,  st, err, dt = calc_flow_old(img0, img1, p0)\r
             else:\r
@@ -74,7 +74,7 @@ def main():
         if ch == 27:\r
             break\r
         if ch == ord(' ') or len(tracks) == 0:\r
-            gray = cv2.cvtColor(frame, cv.CV_BGR2GRAY)\r
+            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\r
             p = cv2.goodFeaturesToTrack(gray, **feature_params)\r
             p = [] if p is None else p.reshape(-1, 2)\r
             tracks = []\r
index a731962..21ba0a4 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 import video\r
 from common import nothing, clock, draw_str\r
 \r
@@ -37,7 +36,7 @@ if __name__ == '__main__':
     while True:\r
         ret, frame = cam.read()\r
         frame_diff = cv2.absdiff(frame, prev_frame)\r
-        gray_diff = cv2.cvtColor(frame_diff, cv.CV_BGR2GRAY)\r
+        gray_diff = cv2.cvtColor(frame_diff, cv2.COLOR_BGR2GRAY)\r
         thrs = cv2.getTrackbarPos('threshold', 'motempl')\r
         ret, motion_mask = cv2.threshold(gray_diff, thrs, 1, cv2.THRESH_BINARY)\r
         timestamp = clock()\r
@@ -52,11 +51,11 @@ if __name__ == '__main__':
             vis = frame_diff.copy()\r
         elif visual_name == 'motion_hist':\r
             vis = np.uint8(np.clip((motion_history-(timestamp-MHI_DURATION)) / MHI_DURATION, 0, 1)*255)\r
-            vis = cv2.cvtColor(vis, cv.CV_GRAY2BGR)\r
+            vis = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR)\r
         elif visual_name == 'grad_orient':\r
             hsv[:,:,0] = mg_orient/2\r
             hsv[:,:,2] = mg_mask*255\r
-            vis = cv2.cvtColor(hsv, cv.CV_HSV2BGR)\r
+            vis = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)\r
 \r
         for i, rect in enumerate([(0, 0, w, h)] + list(seg_bounds)):\r
             x, y, rw, rh = rect\r
index 1e871cf..db62a12 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 \r
 def detect(img, cascade):\r
     rects = cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))\r
@@ -10,7 +9,7 @@ def detect(img, cascade):
     return rects\r
 \r
 def detect_turned(img, cascade):\r
-    img = cv2.cvtColor(img, cv.CV_BGR2GRAY)\r
+    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\r
     img = cv2.equalizeHist(img)\r
 \r
     img_t = cv2.transpose(img)\r
index bd8438d..03cdb3f 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 import video\r
 \r
 help_message = '''\r
@@ -18,7 +17,7 @@ def draw_flow(img, flow, step=16):
     fx, fy = flow[y,x].T\r
     lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)\r
     lines = np.int32(lines + 0.5)\r
-    vis = cv2.cvtColor(img, cv.CV_GRAY2BGR)\r
+    vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)\r
     cv2.polylines(vis, lines, 0, (0, 255, 0))\r
     for (x1, y1), (x2, y2) in lines:\r
         cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)\r
@@ -33,7 +32,7 @@ def draw_hsv(flow):
     hsv[...,0] = ang*(180/np.pi/2)\r
     hsv[...,1] = 255\r
     hsv[...,2] = np.minimum(v*4, 255)\r
-    bgr = cv2.cvtColor(hsv, cv.CV_HSV2BGR)\r
+    bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)\r
     return bgr\r
 \r
 def warp_flow(img, flow):\r
@@ -52,14 +51,14 @@ if __name__ == '__main__':
 \r
     cam = video.create_capture(fn)\r
     ret, prev = cam.read()\r
-    prevgray = cv2.cvtColor(prev, cv.CV_BGR2GRAY)\r
+    prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)\r
     show_hsv = False\r
     show_glitch = False\r
     cur_glitch = prev.copy()\r
 \r
     while True:\r
         ret, img = cam.read()\r
-        gray = cv2.cvtColor(img, cv.CV_BGR2GRAY)\r
+        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\r
         flow = cv2.calcOpticalFlowFarneback(prevgray, gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)\r
         prevgray = gray\r
         \r
index e7321ee..0bbcb81 100644 (file)
@@ -6,7 +6,6 @@ Resulting .ply file cam be easily viewed using MeshLab (http://meshlab.sourcefor
 \r
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 \r
 ply_header = '''ply\r
 format ascii 1.0\r
@@ -61,7 +60,7 @@ if __name__ == '__main__':
                     [0, 0, 0,     -f], # so that y-axis looks up\r
                     [0, 0, 1,      0]])\r
     points = cv2.reprojectImageTo3D(disp, Q)\r
-    colors = cv2.cvtColor(imgL, cv.CV_BGR2RGB)\r
+    colors = cv2.cvtColor(imgL, cv2.COLOR_BGR2RGB)\r
     mask = disp > disp.min()\r
     out_points = points[mask]\r
     out_colors = colors[mask]\r
index 639eeae..cb0cb8d 100644 (file)
@@ -1,6 +1,5 @@
 import numpy as np\r
 import cv2\r
-import cv2.cv as cv\r
 from common import Sketcher\r
 \r
 help_message = '''\r