OpenCV基础图形绘制
- categories
- >
- OpenCV
写在前面
使用 C++语言
一些圆、椭圆、直线等基础图形绘制, 为图像添加文字。
操作环境
操作系统: Ubuntu 18.04
OpenCV: 4.1.0
开始
OpenCV 坐标系
原点 _______\ x轴
|
|
|
\|
y轴
注意:
所有的图像均是在名为 canvas 的 Mat 类型上实现
已提前声明命名空间using namespace cv;
cv::Mat canvas(400, 400, CV_8U);
直线
void line(){
cv::line(canvas,
cv::Point(0, 45), // 起始点
cv::Point(400, 400), // 终点
255, // 颜色
2); // 宽度
cv::imshow("line", canvas);
cv::waitKey(0);
}
圆形
void circle() {
cv::circle(canvas,
cv::Point(200, 200), // 圆心
100, // 半径
255, // 颜色
2); // 宽度
cv::imshow("circle", canvas);
cv::waitKey(0);
}
椭圆
void ellipse(){
cv::ellipse(canvas
cv::Point(200, 200), // 圆心
cv::Size(100, 50)), // (x轴长度,y轴长度)
10, // 旋转角度
0, // 绘制起点
270, // 绘制终点
255, // 颜色
2); // 宽度
cv::imshow("ellipse", canvas);
cv::waitKey(0);
}
矩形
void rectangle(){
cv::rectangle(canvas,
cv::Point(100, 100), // 左上角坐标
cv::Point(300, 300), // 右下角坐标
255, // 颜色
2); // 宽度
cv::rectangle(canvas,
Rect(50, 50, 100, 100), // (左上角点x,左上角点y, 矩形宽度, 矩形长度)
255, // 颜色
2); // 宽度
cv::imshow("rectangle", canvas);
cv::waitKey(0);
}
文字
void text(){
cv::putText(canvas,
"hello world", // 绘制文字
cv::Point(20, 100), // 起始点
cv::FONT_ITALIC, // 字体
2, // 字体缩放
255, // 颜色
2); // 宽度
cv::imshow("text", canvas);
cv::waitKey(0);
}
注意: 无法输出中文, 会出现???
写在后面
基础绘制,多用于标记。
comment:
- Valine
- LiveRe
- ChangYan