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() 分别表示矩形的左上角和右下角的坐标值。
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
此外,还有以下的类:
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,如果第四个参数(表示透明度)用不到,直接不写即可。
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
效果图:
4、颜色空间转换函数 cvtColor()函数
这个函数是将颜色空间进行转换的函数,能够实现 RGB 图像向 HSI、灰度图、HSV转换。函数的使用方法如下。
cvtColor(srcImage, dstImage,转换标示符号);
其实常用的就那几个,没有下面那么多。。。。
二.imgproc:图像处理模块,包含和图像相关的基础功能(滤波,梯度,改变大小等),以及一些衍生的高级功能(图像分割,直方图,形态分析和边缘/直线提取等)。
大致内容:
大佬介绍的很详细: 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
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!