From 16ba62dcd5b98754cd0045f08f16b1b64103ec43 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky <no@email> Date: Mon, 18 Jul 2011 13:05:34 +0000 Subject: [PATCH] added COLOR_... enumeration to imgproc.hpp and EVENT_... enumeration to highgui.hpp --- .../include/opencv2/highgui/highgui.hpp | 24 +++ .../include/opencv2/imgproc/imgproc.hpp | 142 ++++++++++++++++++ samples/python2/calibrate.py | 3 +- samples/python2/coherence.py | 4 +- samples/python2/color_histogram.py | 5 +- samples/python2/common.py | 5 +- samples/python2/distrans.py | 1 - samples/python2/edge.py | 3 +- samples/python2/find_obj.py | 3 +- samples/python2/floodfill.py | 3 +- samples/python2/lk_track.py | 6 +- samples/python2/motempl.py | 7 +- samples/python2/obj_detect.py | 3 +- samples/python2/opt_flow.py | 9 +- samples/python2/stereo_match.py | 3 +- samples/python2/watershed.py | 1 - 16 files changed, 187 insertions(+), 35 deletions(-) diff --git a/modules/highgui/include/opencv2/highgui/highgui.hpp b/modules/highgui/include/opencv2/highgui/highgui.hpp index 094aeda25f..0f7e5d46e7 100644 --- a/modules/highgui/include/opencv2/highgui/highgui.hpp +++ b/modules/highgui/include/opencv2/highgui/highgui.hpp @@ -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 diff --git a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp index b95f7a952d..f45cf49ad0 100644 --- a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp +++ b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp @@ -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 ); diff --git a/samples/python2/calibrate.py b/samples/python2/calibrate.py index 877364a8fd..96ec3ad678 100644 --- a/samples/python2/calibrate.py +++ b/samples/python2/calibrate.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv import os from common import splitfn @@ -39,7 +38,7 @@ if __name__ == '__main__': term = ( cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_COUNT, 30, 0.1 ) cv2.cornerSubPix(img, corners, (5, 5), (-1, -1), term) if debug_dir: - vis = cv2.cvtColor(img, cv.CV_GRAY2BGR) + vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) cv2.drawChessboardCorners(vis, pattern_size, corners, found) path, name, ext = splitfn(fn) cv2.imwrite('%s/%s_chess.bmp' % (debug_dir, name), vis) diff --git a/samples/python2/coherence.py b/samples/python2/coherence.py index f6f2827fac..191f721431 100644 --- a/samples/python2/coherence.py +++ b/samples/python2/coherence.py @@ -8,8 +8,6 @@ import numpy as np import cv2 -import cv2.cv as cv - def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4): h, w = img.shape[:2] @@ -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): print i, - gray = cv2.cvtColor(img, cv.CV_BGR2GRAY) + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) eigen = cv2.cornerEigenValsAndVecs(gray, str_sigma, 3) eigen = eigen.reshape(h, w, 3, 2) # [[e1, e2], v1, v2] x, y = eigen[:,:,1,0], eigen[:,:,1,1] diff --git a/samples/python2/color_histogram.py b/samples/python2/color_histogram.py index b092c7d80f..87041fcc51 100644 --- a/samples/python2/color_histogram.py +++ b/samples/python2/color_histogram.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv from time import clock import sys @@ -11,7 +10,7 @@ h, s = np.indices(hsv_map.shape[:2]) hsv_map[:,:,0] = h hsv_map[:,:,1] = s hsv_map[:,:,2] = 255 -hsv_map = cv2.cvtColor(hsv_map, cv.CV_HSV2BGR) +hsv_map = cv2.cvtColor(hsv_map, cv2.COLOR_HSV2BGR) cv2.imshow('hsv_map', hsv_map) cv2.namedWindow('hist', 0) @@ -32,7 +31,7 @@ while True: small = cv2.pyrDown(frame) - hsv = cv2.cvtColor(small, cv.CV_BGR2HSV) + hsv = cv2.cvtColor(small, cv2.COLOR_BGR2HSV) dark = hsv[...,2] < 32 hsv[dark] = 0 h = cv2.calcHist( [hsv], [0, 1], None, [180, 256], [0, 180, 0, 256] ) diff --git a/samples/python2/common.py b/samples/python2/common.py index 59de42f25c..e6586029cc 100644 --- a/samples/python2/common.py +++ b/samples/python2/common.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv import os image_extensions = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.tiff', '.pbm', '.pgm', '.ppm'] @@ -74,9 +73,9 @@ class Sketcher: def on_mouse(self, event, x, y, flags, param): pt = (x, y) - if event == cv.CV_EVENT_LBUTTONDOWN: + if event == cv2.EVENT_LBUTTONDOWN: self.prev_pt = pt - if self.prev_pt and flags & cv.CV_EVENT_FLAG_LBUTTON: + if self.prev_pt and flags & cv2.EVENT_FLAG_LBUTTON: for dst, color in zip(self.dests, self.colors_func()): cv2.line(dst, self.prev_pt, pt, color, 5) self.dirty = True diff --git a/samples/python2/distrans.py b/samples/python2/distrans.py index c200e7d290..0a68ad4722 100644 --- a/samples/python2/distrans.py +++ b/samples/python2/distrans.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv from common import make_cmap help_message = '''USAGE: distrans.py [<image>] diff --git a/samples/python2/edge.py b/samples/python2/edge.py index 371e729346..9b72dd80f2 100644 --- a/samples/python2/edge.py +++ b/samples/python2/edge.py @@ -1,5 +1,4 @@ import cv2 -import cv2.cv as cv import video import sys @@ -16,7 +15,7 @@ cv2.createTrackbar('thrs2', 'edge', 4000, 5000, nothing) cap = video.create_capture(fn) while True: flag, img = cap.read() - gray = cv2.cvtColor(img, cv.CV_BGR2GRAY) + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) thrs1 = cv2.getTrackbarPos('thrs1', 'edge') thrs2 = cv2.getTrackbarPos('thrs2', 'edge') edge = cv2.Canny(gray, thrs1, thrs2, apertureSize=5) diff --git a/samples/python2/find_obj.py b/samples/python2/find_obj.py index 5aaf293b6c..1dc9c3c842 100644 --- a/samples/python2/find_obj.py +++ b/samples/python2/find_obj.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv from common import anorm help_message = '''SURF image match @@ -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) vis[:h1, :w1] = img1 vis[:h2, w1:w1+w2] = img2 - vis = cv2.cvtColor(vis, cv.CV_GRAY2BGR) + vis = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR) if H is not None: corners = np.float32([[0, 0], [w1, 0], [w1, h1], [0, h1]]) diff --git a/samples/python2/floodfill.py b/samples/python2/floodfill.py index 59987caa97..3cc6c9d450 100644 --- a/samples/python2/floodfill.py +++ b/samples/python2/floodfill.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv help_message = '''USAGE: floodfill.py [<image>] @@ -42,7 +41,7 @@ if __name__ == '__main__': def onmouse(event, x, y, flags, param): global seed_pt - if flags & cv.CV_EVENT_FLAG_LBUTTON: + if flags & cv2.EVENT_FLAG_LBUTTON: seed_pt = x, y update() diff --git a/samples/python2/lk_track.py b/samples/python2/lk_track.py index e4290ffc92..0fe4cc6ac9 100644 --- a/samples/python2/lk_track.py +++ b/samples/python2/lk_track.py @@ -51,8 +51,8 @@ def main(): vis = frame.copy() if len(tracks) > 0: p0 = np.float32([tr[-1] for tr in tracks]).reshape(-1, 1, 2) - img0 = cv2.cvtColor(prev_frame, cv.CV_BGR2GRAY) - img1 = cv2.cvtColor(frame, cv.CV_BGR2GRAY) + img0 = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY) + img1 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if old_mode: p1, st, err, dt = calc_flow_old(img0, img1, p0) else: @@ -74,7 +74,7 @@ def main(): if ch == 27: break if ch == ord(' ') or len(tracks) == 0: - gray = cv2.cvtColor(frame, cv.CV_BGR2GRAY) + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) p = cv2.goodFeaturesToTrack(gray, **feature_params) p = [] if p is None else p.reshape(-1, 2) tracks = [] diff --git a/samples/python2/motempl.py b/samples/python2/motempl.py index a7319625a4..21ba0a42b2 100644 --- a/samples/python2/motempl.py +++ b/samples/python2/motempl.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv import video from common import nothing, clock, draw_str @@ -37,7 +36,7 @@ if __name__ == '__main__': while True: ret, frame = cam.read() frame_diff = cv2.absdiff(frame, prev_frame) - gray_diff = cv2.cvtColor(frame_diff, cv.CV_BGR2GRAY) + gray_diff = cv2.cvtColor(frame_diff, cv2.COLOR_BGR2GRAY) thrs = cv2.getTrackbarPos('threshold', 'motempl') ret, motion_mask = cv2.threshold(gray_diff, thrs, 1, cv2.THRESH_BINARY) timestamp = clock() @@ -52,11 +51,11 @@ if __name__ == '__main__': vis = frame_diff.copy() elif visual_name == 'motion_hist': vis = np.uint8(np.clip((motion_history-(timestamp-MHI_DURATION)) / MHI_DURATION, 0, 1)*255) - vis = cv2.cvtColor(vis, cv.CV_GRAY2BGR) + vis = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR) elif visual_name == 'grad_orient': hsv[:,:,0] = mg_orient/2 hsv[:,:,2] = mg_mask*255 - vis = cv2.cvtColor(hsv, cv.CV_HSV2BGR) + vis = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR) for i, rect in enumerate([(0, 0, w, h)] + list(seg_bounds)): x, y, rw, rh = rect diff --git a/samples/python2/obj_detect.py b/samples/python2/obj_detect.py index 1e871cf322..db62a12e5b 100644 --- a/samples/python2/obj_detect.py +++ b/samples/python2/obj_detect.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv def detect(img, cascade): rects = cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) @@ -10,7 +9,7 @@ def detect(img, cascade): return rects def detect_turned(img, cascade): - img = cv2.cvtColor(img, cv.CV_BGR2GRAY) + img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img = cv2.equalizeHist(img) img_t = cv2.transpose(img) diff --git a/samples/python2/opt_flow.py b/samples/python2/opt_flow.py index bd8438d39a..03cdb3f1cb 100644 --- a/samples/python2/opt_flow.py +++ b/samples/python2/opt_flow.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv import video help_message = ''' @@ -18,7 +17,7 @@ def draw_flow(img, flow, step=16): fx, fy = flow[y,x].T lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2) lines = np.int32(lines + 0.5) - vis = cv2.cvtColor(img, cv.CV_GRAY2BGR) + vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) cv2.polylines(vis, lines, 0, (0, 255, 0)) for (x1, y1), (x2, y2) in lines: cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1) @@ -33,7 +32,7 @@ def draw_hsv(flow): hsv[...,0] = ang*(180/np.pi/2) hsv[...,1] = 255 hsv[...,2] = np.minimum(v*4, 255) - bgr = cv2.cvtColor(hsv, cv.CV_HSV2BGR) + bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR) return bgr def warp_flow(img, flow): @@ -52,14 +51,14 @@ if __name__ == '__main__': cam = video.create_capture(fn) ret, prev = cam.read() - prevgray = cv2.cvtColor(prev, cv.CV_BGR2GRAY) + prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY) show_hsv = False show_glitch = False cur_glitch = prev.copy() while True: ret, img = cam.read() - gray = cv2.cvtColor(img, cv.CV_BGR2GRAY) + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) flow = cv2.calcOpticalFlowFarneback(prevgray, gray, None, 0.5, 3, 15, 3, 5, 1.2, 0) prevgray = gray diff --git a/samples/python2/stereo_match.py b/samples/python2/stereo_match.py index e7321ee1ad..0bbcb81726 100644 --- a/samples/python2/stereo_match.py +++ b/samples/python2/stereo_match.py @@ -6,7 +6,6 @@ Resulting .ply file cam be easily viewed using MeshLab (http://meshlab.sourcefor import numpy as np import cv2 -import cv2.cv as cv ply_header = '''ply format ascii 1.0 @@ -61,7 +60,7 @@ if __name__ == '__main__': [0, 0, 0, -f], # so that y-axis looks up [0, 0, 1, 0]]) points = cv2.reprojectImageTo3D(disp, Q) - colors = cv2.cvtColor(imgL, cv.CV_BGR2RGB) + colors = cv2.cvtColor(imgL, cv2.COLOR_BGR2RGB) mask = disp > disp.min() out_points = points[mask] out_colors = colors[mask] diff --git a/samples/python2/watershed.py b/samples/python2/watershed.py index 639eeae451..cb0cb8dcb1 100644 --- a/samples/python2/watershed.py +++ b/samples/python2/watershed.py @@ -1,6 +1,5 @@ import numpy as np import cv2 -import cv2.cv as cv from common import Sketcher help_message = '''