OpenCV 常用模块及API使用简介 C++版

OpenCV4 + VS2017 enCV4 + VS2017 环境配置

https://blog.csdn.net/qq_41175905/article/details/80560429,这个链接介绍的非常详细;

.core:核心模块,主要包含了OpenCV中最基本的结构(矩阵,点线和形状等),以及相关的基础运算/操作。

1、点类 Point

Point 类定义的是二维坐标系下的点,所以,它有两个成员:x 和 y;

常用函数:

1 int main()
 2 {    
 3     // 点的表示
 4     Point point_A;    //是整型的
 5     point_A.x = 1;  
 6     point_A.y = 1;
 7     cout << point_A << endl;  //输出的是 [1,1]
 8 }
 9 
10 /** 此外,Opencv 还有这样的定义
11  *typedef Point_<int> Point2i;
12  *typedef Point_<int64> Point2l;
13  *typedef Point_<float> Point2f;
14  *typedef Point_<double> Point2d;
15  *typedef Point2i Point;
16  */
17 
18 void test() {
19     // 嵌入在容器中的Point类 
20     vector<cv::Point2i> dstPoints ;       
21 }

2、矩形类 Rect

Rect类的成员变量有四个:x,y 表示矩形左上角的坐标。width 和 height 分别表示矩形的宽和高。Rect 常见的成员函数有 :

Size() 的返回值为尺寸Size :返回的是 [宽 × 高]

area() 返回的是矩形的面积;

contains(Point) 判断点是是否在矩形内部;rect.contains(point),如果在,返回1,如果不在,返回0

tl() 和 br() 分别表示矩形的左上角和右下角的坐标值。


OpenCV 常用模块及API使用简介 C++版OpenCV 常用模块及API使用简介 C++版

1 int main() {
 2 
 3     //矩形类的表示
 4     Rect rect1(1, 1, 10, 10);
 5     cout << rect1 << endl;   //输出的是 [10 × 10 from (1,1)]
 6     cout << rect1.area() << endl;  //输出的是100
 7     cout << rect1.tl() << "t" << rect1.br() << endl;  //输出的是12,1],[11,11]
 8     cout << rect1.size() << endl;  //输出的是 [10 × 10]
 9     Point point1(3, 7), point2(0, 0);
10     cout << rect1.contains(point1) << endl;  //返回的是1
11     cout << rect1.contains(point2) << endl;  //返回的是0
12 
13     Mat src = imread("F:/桌面/girl01.bmp");
14     Rect rect(230, 5, 280, 290);//左上坐标(x,y)和矩形的长(x)宽(y)
15 
16     cv::rectangle(src, rect, Scalar(255, 0, 0), 1, LINE_8, 0);
17 
18     imwrite("src.png", src);
19     imshow("src", src);
20     waitKey(0);
21 
22     return 0;
23 }

View Code
OpenCV 常用模块及API使用简介 C++版

此外,还有以下的类:
OpenCV 常用模块及API使用简介 C++版OpenCV 常用模块及API使用简介 C++版

1    RotatedRect();
2    RotatedRect(const Point2f& center, const Size2f& size, float angle);
3    RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3);

View Code
等等...

3、颜色的表示:Scalar类

Scalar()有四个元素:R,G,B,A,如果第四个参数(表示透明度)用不到,直接不写即可。
OpenCV 常用模块及API使用简介 C++版OpenCV 常用模块及API使用简介 C++版

1 int main() {
 2 
 3 
 4     /**
 5       创建一个3通道,256行 256列的图像矩阵。
 6       CV_8UC3表示每个元素的深度8bit,C3表示通道数为3,
 7       Scalar(255, 0, 0) 代表第一个通道值为255, 第二为0, 第三个为0
 8      */
 9     Mat blue_m(256, 256, CV_8UC3, Scalar(255, 0, 0));
10     Mat green_m(256, 256, CV_8UC3, Scalar(0, 255, 0));
11     Mat red_m(256, 256, CV_8UC3, Scalar(0, 0, 255));
12     imshow("Blue", blue_m);
13     waitKey(0);
14     imshow("Green", green_m);
15     waitKey(0);
16     imshow("Red", red_m);
17     waitKey(0);
18 
19     return 0;
20 }

View Code
效果图:

OpenCV 常用模块及API使用简介 C++版

4、颜色空间转换函数 cvtColor()函数

这个函数是将颜色空间进行转换的函数,能够实现 RGB 图像向 HSI、灰度图、HSV转换。函数的使用方法如下。

cvtColor(srcImage, dstImage,转换标示符号);

其实常用的就那几个,没有下面那么多。。。。

OpenCV 常用模块及API使用简介 C++版

二.imgproc:图像处理模块,包含和图像相关的基础功能(滤波,梯度,改变大小等),以及一些衍生的高级功能(图像分割,直方图,形态分析和边缘/直线提取等)。

大致内容:

OpenCV 常用模块及API使用简介 C++版

大佬介绍的很详细: https://blog.csdn.net/wc781708249/article/details/78460942

.highgui:提供了用户界面和文件读取的基本函数,比如图像显示窗口的生成和控制,图像/视频文件的IO等。

我不生产资源,我只是资源的搬运工:https://blog.csdn.net/qq_32211827/article/details/62896280
原文链接: https://www.cnblogs.com/xpeanut/p/12821861.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/196876

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午7:23
下一篇 2023年2月12日 下午7:23

相关推荐