OpenCV基础函数
drawmarker就是画标记的函数,使用也非常简单,以前一般要图像上做标记可能直接就画的点,而drawmarker函数中,可多个不同的标记可以自己选择,用了它就可以在图像上做标记会更方便一些。
drawMarker函数介绍
微卡智享
drawMarker
代码语言:javascript复制void cv::drawMarker ( InputOutputArray img, --源图像
Point position, --要画的坐标点
const Scalar & color, --颜色
int markerType = MARKER_CROSS, --标记类型
int markerSize = 20, --标记大小
int thickness = 1, --线条粗细
int line_type = 8 )
上面函数中的参数也非常简直,已经写了对应的说明,需要注意的一个就是markerType的参数,这里的参数有多个,如下:
参数值 | 参数名称 |
---|---|
MarkerTypes::MARKER_CROSS | 十字 |
MarkerTypes::MARKER_DIAMOND | 钻石 |
MarkerTypes::MARKER_SQUARE | 正方形 |
MarkerTypes::MARKER_STAR | 星形 |
MarkerTypes::MARKER_TILTED_CROSS | 叉叉 |
MarkerTypes::MARKER_TRIANGLE_DOWN | 向下箭头 |
MarkerTypes::MARKER_TRIANGLE_UP | 向上箭头 |
代码演示
微卡智享
新建一个opencvdrawmarker的项目,配置OpenCV的属性《VS2017配置OpenCV通用属性》
main的代码
代码语言:javascript复制#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
//创建一个的空Mat
Mat src = Mat::zeros(240, 120, CV_8UC3);
//画蓝色十字
drawMarker(src, Point(60, 30), Scalar(255, 0, 0), MarkerTypes::MARKER_CROSS, 20, 3, 8);
//画绿色钻石
drawMarker(src, Point(60, 60), Scalar(0, 255, 0), MarkerTypes::MARKER_DIAMOND, 20, 3, 8);
//画红色正方形
drawMarker(src, Point(60, 90), Scalar(0, 0, 255), MarkerTypes::MARKER_SQUARE, 20, 3, 8);
//画紫色星形
drawMarker(src, Point(60, 120), Scalar(255, 0, 255), MarkerTypes::MARKER_STAR, 20, 3, 8);
//画浅蓝色叉
drawMarker(src, Point(60, 150), Scalar(255, 255, 0), MarkerTypes::MARKER_TILTED_CROSS, 20, 3, 8);
//画黄色向下箭头
drawMarker(src, Point(60, 180), Scalar(0, 255, 255), MarkerTypes::MARKER_TRIANGLE_DOWN, 20, 3, 8);
//画白色向上箭头
drawMarker(src, Point(60, 210), Scalar(255, 255, 255), MarkerTypes::MARKER_TRIANGLE_UP, 20, 3, 8);
//显示图像
imshow("src", src);
waitKey(0);
return 0;
}
实现效果
drawMarker的函数就是这么的简单。
完