1. Mat 类的基本介绍
- 🐧
OpenCV
直接提供常用的Mat
类来存储矩阵类型,其中包括矩阵、向量、图像等信息。 - 🐧
Mat
类由两部分组成:矩阵头和指向像素数据的矩阵指针。
2. 常见的绘图API
-
🐧
imread
读写图像函数,imread (char filename,int flags)
;作用:读取图像
-
🐧
imshow
显示图像函数,imshow (const String& winname, InputArrymat)
作用:创建一个图像窗口
参数:
winname
(窗口名称);mat
(图像矩阵);
- 🐧
imwrite
保存图像函数
- 🐧 接收按键事件函数:
waitKey(delay=None)
作用:接收一个按键事件;
参数:delay
为按下后返回的延迟事件;
3. 绘制直线
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void myline(cv::Mat mypng);
int main(int argc, char* argv[])
{
// 读取图像数据,存放到mjp变量
Mat mypng = imread("1.png");
// 调用函数,绘制直线
myline(mypng);
// 创建一个图像窗口,显示图像
imshow("OpenCV测试程序", mypng);
// 等待用户按键
waitKey(0);
return 0;
}
// 绘制直线
void myline(cv::Mat mypng)
{
// 定义两个点(坐标)
cv::Point p1 = cv::Point(20, 30); // 横纵坐标
cv::Point p2;
p2.x = 350;
p2.y = 30;
// 定义线颜色
cv::Scalar mycolor = cv::Scalar(0, 200, 255);
// 在背景图进行绘制直线
cv::line(mypng, p1, p2, mycolor, 5, cv::LINE_AA);
}