C++ OpenCV标记函数drawMarker的使用

2020-11-09 14:52:11 浏览数 (1)

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的函数就是这么的简单。

0 人点赞