OpenCV绘图函数(5)绘制标记函数drawMarker()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::drawMarker 函数在 OpenCV 中用于在一个给定的位置上绘制标记。目前支持几种不同的标记类型,具体信息可以参考 MarkerTypes

函数原型

cpp 复制代码
void cv::drawMarker	
(
	InputOutputArray 	img,
	Point 	position,
	const Scalar & 	color,
	int 	markerType = MARKER_CROSS,
	int 	markerSize = 20,
	int 	thickness = 1,
	int 	line_type = 8 
)		

参数

  • 参数img 图像.
  • 参数position 十字准星所在的位置点
  • 参数color 线条颜色
  • 参数markerType 您想要使用的标记类型,参见 MarkerTypes
  • 参数thickness 线条粗细
  • 参数line_type 线条类型,参见 LineTypes
  • 参数markerSize 标记轴的长度 [默认 = 20 像素]

代码示例

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main()
{
    // 创建一个空白图像
    cv::Mat image = cv::Mat::zeros( 500, 500, CV_8UC3 );

    // 设置标记参数
    cv::Point position( 40, 40 );       // 标记位置
    cv::Scalar color( 0, 0, 255 );      // 标记颜色(BGR格式)
    int markerType = cv::MARKER_CROSS;  // 标记类型 十字形标记形状。
    int markerSize = 50;                // 标记大小
    int thickness  = 2;                 // 标记线条厚度
    int line_type  = cv::LINE_8;        // 线条类型

    // 绘制标记
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    // 45度倾斜的十字形标记形状
    markerType = cv::MARKER_TILTED_CROSS;
    position   = cv::Point( 90, 90 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    //星形标记形状,是十字形和倾斜十字形的组合
    markerType = cv::MARKER_STAR;
    position   = cv::Point( 150, 150 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    //菱形标记形状。
    markerType = cv::MARKER_DIAMOND;
    position   = cv::Point( 210, 210 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    //  正方形标记形状。
    markerType = cv::MARKER_SQUARE;
    position   = cv::Point( 270, 270 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    // 向上的三角形标记形状
    markerType = cv::MARKER_TRIANGLE_UP;
    position   = cv::Point( 330, 330 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    //向下的三角形标记形状
    markerType = cv::MARKER_TRIANGLE_DOWN;
    position   = cv::Point( 400, 400 );
    cv::drawMarker( image, position, color, markerType, markerSize, thickness, line_type );

    // 显示图像
    cv::imshow( "Marker Drawing", image );
    cv::waitKey( 0 );

    return 0;
}

运行结果

相关推荐
jndingxin9 分钟前
OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()的使用
人工智能·opencv·计算机视觉
AI in Bio26 分钟前
预训练蛋白质语言模型ESM-2保姆级使用教程
人工智能·语言模型
成都古河云39 分钟前
智慧园区:解析集成运维的未来之路
大数据·运维·人工智能·科技·5g·安全
真-忒修斯之船1 小时前
搭配Knowledge Graph的RAG架构
人工智能·大模型·llm·知识图谱·graph·rag·knowledgegraph
CodingPioneer1 小时前
RK3588人工智能学习笔记-WSL中使用RKNN-ToolKit2
人工智能·笔记·学习
Linux猿1 小时前
Pytorch Lightning框架
人工智能·pytorch·python
喵~来学编程啦1 小时前
【PyTorch入门·求导相关】一文解释 PyTorch的求导 (backward、autograd.grad)
人工智能·pytorch·python
sp_fyf_20242 小时前
计算机人工智能前沿进展-大语言模型方向-2024-09-17
人工智能·语言模型·自然语言处理
海的那边-2 小时前
PyTorch 和 TensorFlow
人工智能·pytorch·tensorflow
TAICHIFEI2 小时前
1. YOLOv10: Real-Time End-to-End Object Detection
人工智能·笔记·yolo·目标检测·目标跟踪