Core模块其他常用知识点[OpenCV 笔记14]

Matx

轻量级的Mat,必须在使用前规定好大小,比如一个2x3的float型的Matx,可以声明为Matx23f

Vec

Vec是Matx的一个派生类,是一个一维的Matx,跟vector很相似。在OpenCV源码中定义如下:

template<typename _TP, int n> class Vec : public Matx<_Tp, n, 1> {...};
typedef Vec<uchar, 2> Vec2b;

Range

使OpenCV的使用更像MATLAB, Range::all()等同于MATLAB的:,Range(a,b)等同于MATLAB的a:b,其中a, b为整型

内存溢出

防止内存溢出的函数有alignPtr, alignSize, allocate, deallocate, fastMalloc, fastFree

math.h函数

复制代码
float cv::fastAtan2 (   float y, float x ); // 计算向量角度

float cv::cubeRoot (float val);  // 计算立方根

int     cvCeil (double value);
int     cvCeil (float value);
int     cvCeil (int value);  // 向上取整

int     cvFloor (double value);
int     cvFloor (float value);
int     cvFloor (int value);  // 向下取整

int     cvRound (double value)
int     cvRound (float value)
int     cvRound (int value)  // 四舍五入

int     cvIsInf (double value);
int     cvIsInf (float value);  // 自变量是否无穷大

int     cvIsNaN (double value);
int     cvIsNaN (float value);  // 自变量是否为NaN
复制代码

文字显示函数

复制代码
Size cv::getTextSize(   const String & text, int fontFace, double fontScale, int thickness, int * baseLine );
// Calculates the width and height of a text string.
//  baseLine:   y-coordinate of the baseline relative to the bottom-most text point.

void    cv::putText (InputOutputArray img, const String &text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=LINE_8, bool bottomLeftOrigin=false)
// Renders the specified text string in the image.

void cvInitFont( CvFont * font, int font_face, double hscale, double vscale, double shear = 0, int thickness = 1, int line_type = 8 )       
// Initializes the font structure that can be passed to text rendering functions.
复制代码

作图函数

可参考链接

 

复制代码
void    cv::circle (InputOutputArray img, Point center, int radius, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0);
// Draw a circle.

bool    cv::clipLine (Size imgSize, Point &pt1, Point &pt2)
// Clips the line against the image rectangle.

void    cv::ellipse (InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
// Draws a simple or thick elliptic arc or fills an ellipse sector.

void    cv::ellipse (InputOutputArray img, const RotatedRect &box, const Scalar &color, int thickness=1, int lineType=LINE_8)
 
void    cv::ellipse2Poly (Point center, Size axes, int angle, int arcStart, int arcEnd, int delta, std::vector< Point > &pts)
// Approximates an elliptic arc with a polyline.

void    cv::line (InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
// Draws a line segment connecting two points.
 
void    cv::polylines (Mat &img, const Point *const *pts, const int *npts, int ncontours, bool isClosed, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
 
void    cv::polylines (InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
// Draws several polygonal curves.

class   cv::LineIterator;
复制代码

填充函数

复制代码
void cv::fillConvexPoly (Mat &img, const Point *pts, int npts, const Scalar &color, int lineType=LINE_8, int shift=0)

void cv::fillConvexPoly (InputOutputArray img, InputArray points, const Scalar &color, int lineType=LINE_8, int shift=0)
// Fills a convex polygon.

void    cv::fillPoly (Mat &img, const Point **pts, const int *npts, int ncontours, const Scalar &color, int lineType=LINE_8, int shift=0, Point offset=Point())

void    cv::fillPoly (InputOutputArray img, InputArrayOfArrays pts, const Scalar &color, int lineType=LINE_8, int shift=0, Point offset=Point())
// Fills the area bounded by one or more polygons. 
复制代码

随机数生成器

class RNG;

 

posted @   TinaSmile  阅读(818)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示