基于C++的OpenCV常用函数

    技术2025-02-05  13

    C++版本的好处:

    1、在于可以尽量避免使用指针这种危险的东西;

    2、不用费心去release资源了,因为在其destructor里面,系统会自动帮你搞定。

    3、在某些情况下会比C版本运行速度快。

    在文件中包含 using namespace cv;

     

    1.        imread(cvLoadImage):loads an image from a file;

    2.        imshow(cvShowImage):displays an image in the specifiedwidow;

    3.        waitKey(cvWaitKey):waits for a pressed key;

    4.        cvtColor(cvCvtColor):converts an image from one colorspace to another;

    5.        reduce(cvReduce):reduces a matrix to a vector;

    6.        minMaxLoc(cvMinMaxLoc):finds the global minimum andmaximum in a whole array or sub-array;

    7.        namedWindow(cvNamedWindow):creates a window;

    8.        destroyWindow(cvDestroyWindow):destroys a window;

    9.        destroyAllWindows(cvDestroyAllWindows):destroys all of the HighGUIwindows;

    10.    imwrite(cvSaveImage):saves an image to a specified file;

    11.    resize(cvResize):resizes an image;

    12.    pyrDown(cvPyrDown):blurs an image and downsamples it;

    13.    pyrUp(cvPyrUp):upsamples an image and then blursit;

    14.    threshold(cvThreshold):applies a fixed-level threshold toeach array element;

    15.    adaptiveThreshold(cvAdaptiveThreshold):applies an adaptive threshold toan array;

    16.    VideoCapthure::open(cvCaptureFromFile):open video file or a capturingdevice for video capturing;

    17.    VideoCapture::isOpened:returns true if video capturinghas been initialized already;

    18.    VideoCapture::release(cvReleaseCapture):closes video file or capturingdevice;

    19.    VideoCapture::grab(cvGrabFrame):grabs the next frame from videofile or capturing device;

    20.    VideoCaputre::retrieve(cvRetrieveFrame):decodes and returns the grabbedvideo frame;

    21.    VideoCapture::read(cvQueryFrame):grabs,decodes and returns the nextvideo frame;

    22.    VideoCapture::get(cvGetCaptureProperty):returns the specified VideoCaptureproperty;

    23.    VideoCapture::set(cvSetCaptureProperty):sets a property in theVideoCapture;

    24.    VideoWriter::open:initializes or reinitializes videowriter;

    25.    VideoWriter::isOpened:returns true if video writer hasbeen successfully initialized;

    26.    VideoWriter::write:writes the next video frame;

    27.    Mat::row:creates a matrix header for thespecified matrix row;

    28.    Mat::col:creates a matrix header for thespecified matrix column;

    29.    Mat::rowRange:creates a matrix header for thespecified row span;

    30.    Mat::colRange:creates a matrix header for thespecified col span;

    31.    Mat::diag:extracts a diagonal from a matrix,or creates a diagonal matrix;

    32.    Mat::clone:creates a full copy of the arrayand the underlying data;

    33.    Mat::copyTo(cvCopy):copies the matrix to another one;

    34.    Mat::convertTo(cvConvertScale):converts an array to anotherdatatype with optional scaling;

    35.    Mat::assignTo:provides a functional form ofconvertTo;

    36.    Mat::setTo:sets all or some of the arrayelements to the specified value;

    37.    Mat::reshape:changes the shape and/or thenumber of channels of a 2D matrix without copying the data;

    38.    Mat::t:transposes a matrix;

    39.    Mat::inv:inverses a matrix;

    40.    Mat::mul:performs an element-wisemultiplication or division of the two matrices;

    41.    Mat::cross:computes a cross-product of two3-element vectors;

    42.    Mat::dot:computes a dot-product of twovectors;

    43.    Mat::zeros:returns a zero array of thespecified size and type;

    44.    Mat::ones:returns an array of all 1’s of thespecified size and type;

    45.    Mat::eye:returns an identity matrix of thespecified size and type;

    46.    Mat::create:allocates new array data if needed;

    47.    Mat::addref:increments the reference counter;

    48.    Mat::release:decrements the reference counterand deallocates the matrix if needed;

    49.    Mat::resize:changes the number of matrix rows;

    50.    Mat::reserve:reserves space for the certainnumber of rows;

    51.    Mat::push_back:adds elements to the bottom of thematrix;

    52.    Mat::pop_back:removes elements from the bottomof the matrix;

    53.    Mat::locateROI:locates the matrix header within aparent matrix;

    54.    Mat::adjustROI:adjusts a submatrix size andposition within the parent matrix;

    55.    Mat::operator:extracts a rectangular submatrix;

    56.    Mat::operatorCvMat:creates the CvMat header for thematrix;

    57.    Mat::operatorIplImage:creates the IplImage header forthe matrix;

    58.    Mat::total:returns the total number fo arrayelements;

    59.    Mat::isContinuous:reports whether the matrix iscontinuous or not;

    60.    Mat::elemSize:returns the matrix element size inbytes;

    61.    Mat::elemSize1:returns the size of each matrixelement channel in bytes;

    62.    Mat::type:returns the type of a matrixelement;

    63.    Mat::depth:returns the depth of a matrixelement;

    64.    Mat::channels:returns the number of matrix channels;

    65.    Mat::step1:returns a normalized step;

    66.    Mat::size:returns a matrix size;

    67.    Mat::empty:returns true if the array has noelemens;

    68.    Mat::ptr:returns a pointer to the specifiedmatrix row;

    69.    Mat::at:returns a reference to thespecified array element;

    70.    Mat::begin:returns the matrix iterator andsets it to the first matrix element;

    71.    Mat::end:returns the matrix iterator andsets it to the after-last matrix element;

    72.    calcHist(cvCalcHist):calculates a histogram of a set ofarrays;

    73.    compareHist(cvCompareHist):compares two histograms;

    74.    equalizeHist(cvEqualizeHist):equalizes the histogram of agrayscale image(直方图均衡化);

    75.    normalize:normalizes the norm or value rangeof an array;

    76.    CascadeClassifier::CascadeClassifier:loads a classifier from a file;

    77.    CascadeClassifier::empth:checks whether the classifier hasbeen loaded;

    78.    CascadeClassifier::load(cvLoadHaarClassifierCascade):loads a classifier from a file;

    79.    CascadeClassifier::read:reads a classifier from aFileStorage node;

    80.    CascadeClassifier::delectMultiScale(cvHaarDetectObjects):detects objects of different sizesin the input image(检测图像中的目标);

    81.    CascadeClassifier::setImage(cvSetImagesForHaarClassifierCascade):sets an image for detection(隐藏的cascade(hidden cascade)指定图像);

    82.    CascadeClassifier::runAt(cvRunHaarClassifierCascade):runs the detector at the specifiedpoint(在给定位置的图像中运行cascade of boosted classifier);

    83.    groupRectangles:groups the object candidaterectangles;

    84.    split(cvSplit):divides a multi-channel array intoseveral single-channel arrays;

    85.    merge(cvMerge):creates one multichannel array outof several single-channel ones;

    86.    mixChannels(cvMixChannels):copies specified channels frominput arrays to the specified channels of output arrays;

    87.    setMouseCallback(cvSetMouseCallback):sets mouse handler for thespecified window;

    88.    bilateralFilter:applies the bilateral filter to animage(双边滤波);

    89.    blur(cvSmooth):blurs an image using thenormalized box filter(均值模糊);

    90.    medianBlur:blurs an image using the medianfilter(中值模糊);

    91.    boxFilter:blurs an image using the boxfilter;

    92.    GaussianBlur:blurs an image using a Gaussianfilter(高斯模糊);

    93.    getGaussianKernel:returns Gaussian filtercoefficients;

    94.    sepFilter2D:applies a separable linear filterto an image;

    95.    filter2D(cvFilter2D):convolves an image with the kernel;

    96.    norm(cvNorm):calculates an absolute array norm,an absolute difference norm, or a relative defference norm;

    97.    flip(cvFlip):filps a 2D array around vertical,horizontal, or both axes;

    98.    Algorithm::get:returns the algorithm parameter;

    99.    Algorithm::set:set the algorithm parameter;

    100. Algorithm::write:stores algorithm parameters in afile storage;

    101. Algorithm::read:reads algorithm parameters from afile storage;

    102. Algorithm::getList:returns the list of registeredalgorithms;

    103. Algorithm::create:creates algorithm instance by name;

    104. FaceRecognizer::train:trains a FaceRecognizer with givendata and associated labels;

    105. FaceRecognizer::update:updates a FaceRecognizer withgiven data and associated labels;

    106. FaceRecognizer::predict:predicts a label and associatedconfidence(e.g. distance) for a given input image;

    107. FaceRecognizer::save:saves a FaceRecognizer and itsmodel state;

    108. FaceRecognizer::load:loads a FaceRecognizer and itsmodel state;

    109. createEigenFaceRecognizer:;

    110. createFisherFaceRecognizer:;

    111. createBPHFaceRecognizer:;

    112. getTextSize(cvGetTextSize):calculates the width and height ofa textstring;

    113. putText(cvPutText):draws a text string;

    114. getStructuringElement(cvCreateStructingElementEx):returns a structuring element ofthe specified size and shape for morphological operations;

    115. morphologyEx(cvMorphologyEx):performs advanced morphologicaltransformations;

    116. findContours(cvFindContours):finds contours in a binary image;

    117. drawContours(cvDrawContours):draw contours outlines or filledcontours;

    118. minAreaRect(cvMinAreaRect2):finds a rotated rectangle of theminimum area enclosing the input 2D point set;

    119. floodFill(cvFloodFill):fills a connected component withthe given color;

    120. getRectSubPix(cvGetRectSubPix):retrieves a pixel rectangle froman image with sub-pixel accuracy;

    121. CvSVM::CvSVM:default and training constructors;

    122. CvSVM::train:trains an SVM;

    123. CvSVM::train_auto:trains an SVM with optimalparameters;

    124. CvSVM::predict:predicts the response for inputsample(s);

    125. CvSVM::get_default_grid:generates a grid for SVMparameters;

    126. CvSVM::get_params:returns the current SVM parameters;

    127. CvSVM::get_support_vector:retrieves a number of supportvectors and the particular vector;

    128. CvSVM::get_var_count:returns thenumber of used features(variables count);

    129. CvANN_MLP(multi-layerperceptrons)::CvANN_MLP:the constructors;

    130. CvANN_MLP::create:constructs MLP with the specifiedtopology;

    131. CvANN_MLP::train:trains/updates MLP;

    132. CvANN_MLP::predict:predicts responses for inputsamples;

    133. CvANN_MLP::get_layer_count:returns the number fo layers inthe MLP;

    134. CvANN_MLP::get_layer_size:returns numbers of neurons in eachlayer of the MLP;

    135. CvANN_MLP::get_weights:returns neurons weights of theparticular layer;

    136. CvKNearest::CvKNearest:default and training constructors;

    137. CvKNearest::train:trains the model;

    138. CvKNearest::find_nearest:finds the neighbors and predictsresponses for input vectors;

    139. CvKNearest::get_max_k:returns the number of maximumneighbors that may be passed to the method CvKNearest::find_nearest();

    140. CvKNearest::get_var_count:returns the number of usedfeatures(variables count);

    141. CvKNearest::get_sample_count:returns the total number of trainsamples;

    142. CvKNearest::is_regression:returns type of the problem(truefor regression and false for classification);

    143. HoughLines(cvHoughLines):finds lines in a binary imageusing the standard Hough transform;

    144. HoughLinesP:finds line segments in a binaryimage using the probabilistic Hough transform;

    145. HoughCircles(cvHoughCircles):finds circles in a grayscale imageusing the Hough transform;

    146. line(cvLine):draws a line segment connectingtwo points;

    147. fitLine(cvFitLine):fits a line to a 2D or 3D pointset;

    148. fitEllipse(cvFitEllipse2):fits an ellipse around a set of 2Dpoints;

    149. ellipse(cvEllipse、cvEllipseBox):draws a simple or thick ellipticarc or fills an ellipse sector;

    150. boundingRect(cvBoundingRect):calculatesthe up-right bounding rectangle of a point set;

    151. rectangle(cvRectangle):draws a simple, thick, or filledup-right rectangle;

    152. minEnclosingCircle(cvMinEnclosingCircle):finds acircle of the minimum area enclosing a 2D point set;

    153. circle(cvCircle):draw a circle;

    154. fillPoly:fills the area bounded by one ormore polygons;

    155. approxPolyDP(cvApproxPoly):approximates a polygonal curve(s)with the specified precision;

    156. pointPolygonTest(cvPointPolygonTest):performs a point-in-contour test(判断点在多边形中的位置);

    157. convexHull(cvConvexHull2):finds the convex hull of a pointset;

    158. transpose(cvTranspose):transposes a matrix;

    159. invert(cvInvert):finds the inverse orpseudo-inverse of a matrix;

    160. getStructuringElement(cvCreateStructuringElementEx):returns a structuring element ofthe specified size and shape for morphological operations;

    161. absdiff(cvAbsDiff):calculates the per-elementabsolute difference between two arrays or between an array and a scalar;

    162. subtract(cvSub):calculates the per-elementdifference between two arrays or array and a scalar;

    163. multiply(cvMul):calculates the per-element scaledproduct fo two arrays;

    164. divide(cvDiv):performs per-element division oftwo arrays or a scalar by an array;

    165. bitwise_or(cvOr):calculates the per-elementbit-wise disjunction of two arrays or an array and a scalar;

    166. bitwise_and(cvAnd):calculates the per-elementbit-wise conjunction of two arrays or an array and a scalar;

    167. bitwise_not(cvNot):inverts every bit of an array;

    168. bitwise_xor(cvXor):calculates the per-elementbit-wise “exclusive of” operation on two arrays or an array and a scalar;

    169. erode(cvErode):erodes an image by using a specificstructuring element;

    170. dilate(cvDilate):dilates an image by using aspecific structuring element;

    171. min(cvMin):calculates per-element minimum oftwo arrays or an array and a scalar;

    172. max(cvMax):calculates per-element maximum oftwo arrays or an array and a scalar;

    173. add(cvAdd):calculates the per-element sum oftwo arrays or an array and a scalar;

    174. addWeighted(cvAddWeighted):calculates the weighted sum of twoarrays;

    175. scaleAdd(cvScaleAdd):calculats the sum of a scaledarray and another array;

    176. saturate_cast():template function for accurateconversion from one primitive type to another;

    177. sqrt(cvSqrt):calculates a square root of arrayelements;

    178. pow(cvPow):raises every array element to apower;

    179. abs:calculates an absolute value ofeach matrix element;

    180. convertScaleAbs(cvConvertScaleAbs):scales, calculates absolutevalues, and converts the result to 8-bit;

    181. cuberoot(cvCbrt):computes the cube root of anargument;

    182. exp(cvExp):calculates the exponent of everyarray element;

    183. log(cvLog):calculates the natural logarithmof every array element;

    184. Canny(cvCanny):finds edges in an image using theCanny algorithm;

    185. Sobel(cvSobel):calculates the first, second,third, or mixed image derivatives using an extended Sobel operator;

    186. Scharr:Calculates the first x – or y –image derivative using Scharr operator(Scharr 滤波器);

    187. Laplacian(cvLaplace):calculates the Laplacian of animage;

    188. getDerivKernels:returns filter coefficients forcomputing spatial image derivatives;

    189. contourArea(cvContourArea):calculates a contour area;

    190. LUT(cvLUT):performs a look-up table transformof an array;

    191. calcBackProject(cvCalcBackProject):calculates the back projection ofa histogram(反向投影);

    192. arcLength(cvArcLength):calculates a contour perimeter ora curve length;

    193. meanShift(cvMeanShift):finds an object on a backprojection image;

    194. CamShift(cvCamShift):finds an object center, size, andorientation;

    195. TermCriteria:template class definingtermination criteria for iterative algorithms;

    196. createTrackbar(cvCreateTrackbar):creates a trackbar and attaches itto the specified window;

    197. watershed(cvWatershed):performs a marker-based imagesegmentation using the watershed algorithm;

    198. grabCut:runs the GrabCut algorithm;

    199. compare(cvCmp):performs the per-elementcomparison of two arrays or an array and scalar value;

    200. mean(cvAvg):calculates an average(mean) ofarray elements;

    201. meanStdDev(cvAvgSdv):calculates a mean and standarddeviation of array elements;

    202. cartToPolar(cvCartToPolar):calculates the magnitude and angleof 2D vectors;

    203. moments(cvMoments):calculates all of the moments upto the third order of a polygon or rasterized shape;

    204. matchShapes(cvMatchShapes):compares two shapes;

    205. cornerHarris(cvCornerHarris):Harris edge detector;

    206. goodFeaturesToTrack(cvGoodFeaturesToTrack):determines strong corners on an image;

    207. classFeatureDetector:abstract base class for 2D imagefeature detectors;

    208. classFastFeatureDetector:wrapping class for featuredetection using the FAST() method;

    209. classSURF(SurfFeatureDetector、SurfDescriptorExtractor):extracting Speeded Up Robust Featuresfrom an image;

    210. classSIFT(SiftFeatureDetector):extracting keypoints and computingdescriptors using the Scale Invariant Feature Transform(SIFT) algorithm;

    211. SURF::operator(cvExtractSURF):detects keypoints and computesSURF descriptors for them;

    212. drawKeypoints:draw keypoints;

    213. drawMatches:draws the found matches ofkeypoints from two images;

    214. classDescriptorMatcher:abstract base class for matchingkeypoint descriptors. It has two groups of match methods,for matchingdescriptors of an image with another image or with an image set;

    215. findChessboardCorners(cvFindChessboardCorners):finds the positions of internalcorners of the chessboard;

    216. drawChessboardCorners(cvDrawChessboardCorners):renders the detected chessboardcorners;

    217. calibrateCamera(cvCalibrateCamera2):finds the camera intrinsic andextrinsic parameters from several view of a calibration pattern;

    218. initUndistortRectifyMap(cvInitUndistortMap、cvInitUndistortRectifyMap):computes the undistortion andrectification transformation map;

    219. remap(cvRemap):applies a generic geometricaltransformation to an image;

    220. calibrationMatrixValues:computes useful cameracharacteristics from the camera matrix;

    221. findFundamentalMat(cvFindFundamentalMat):calculates a fundamental matrixfrom the corresponding points in two images;

    222. computeCorrespondEpilines(cvComputeCorrespondEpilines):for points in an image of a stereopair, computes the corresponding epilines in the other image;

    223. findHomography(cvFindHomography):finds a perspective transformationbetween two planes;

    224. warpPerspective(cvWarpPerspective):applies a perspectivetransformation to an image;

    225. getPerspectiveTransform(cvGetPerspectiveTransform):calculates a perspective transformfrom four pairs of the corresponding points;

    226. cornerSubPix(cvFindCornerSubPix):refines the corner locations;

    227. calcOpticalFlowPyrLK(cvCalcOpticalFlowPyrLK):calculates an optical flow for asparse feature set using the iterative Lucas-Kanade method with pyramids;

    228. swap:swaps two matrices;

    229. accumulateWeighted(cvRunningAvg):updates a running average;

    230. classBackgroundSubtractorMOG:gaussian mixture-basedbackground/foreground segmentation algorithm;

    231. randu:generates a singleuniformly-distributed(均匀分布) random number or an array ofrandom numbers;

    232. randn:fills the array with normallydistributed(正态分布) random numbers;

    233. getTickCount:returns the number of ticks;

    234. getTickFrequency:returns the number of ticks persecond(使用getTickCount和getTickFrequency两个函数可以计算执行某个算法所用时间);

    235. CV_Assert:checks a condition at runtime andthrows exception if it fails;

    236. saturate_cast:template function for accurateconversion from one primitive type to another;

    237. classRNG:random number generator;

    238. RNG::next:returns the next random number;

    239. RNG::operatorT:returns the next random number ofthe specified type;

    240. RNG::operator():returns the next random number;

    241. RNG::uniform:returns the next random numbersampled from the uniform distribution;

    242. RNG::gaussian:returns the next random numbersampled from the Gaussian distribution;

    243. RNG::fill:fills arrays with random numbers;

    244. getOptimalDFTSize(cvGetOptimalDFTSize):returns the optimal DFT size for agiven vector size;

    245. copyMakeBorder(cvCopyMakeBorder):forms a border around an image;

    246. dft(cvDFT):performs a forward or inverseDiscrete Fourier transform of a 1D or 2D floating-point array;

    247. magnitude:calculates the magnitude(幅度) of 2D vectors;

    248. classFileStorage:XML/YAML file storage class thanencapsulates all the information necessary for writing or reading data to/froma file;

    249. FileStorage::open:open a file;

    250. FileStorage::isOpened:checks whether the file is opened;

    251. FileStorage::release:closes the file and releases allthe memory buffers;

    252. FileStorage::releaseAndGetString:closes the file and releases allthe memory buffers;

    253. FileStorage::getFirstTopLevelNode:returns the first element of thetop-level mapping;

    254. FileStorage::root:returns the top-level mapping;

    255. FileStorage::operator[]:returns the specified element ofthe top-level mapping;

    256. FileStorage::operator*:returns the obsolete C FileStorage structure;

    257. FileStorage::writeRaw:writes multiple numbers;

    258. FileStorage::writeObj:writes the registered C structure(CvMat、CvMatND、CvSeq);

    259. FileStorage::getDefaultObjectName:returns the normalized object name for thespecified name of a file;

    260. getAffineTransform(cvGetAffineTransform):calculates an affine transformfrom three pairs of the corresponding points;

    261. getRotationMatrix2D(cv2DRotationmatrix):calculates an affine matrix of 2Drotation;

    262. warpAffine(cvWarpAffine):applies an affine transformationto an image;

    263. matchTemplate(cvMatchTemplate):compares a template against overlapped imageregions;

     

    最新回复(0)