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;
}

运行结果

相关推荐
ygy.白茶12 分钟前
从电影分类到鸢尾花识别
人工智能
AI_gurubar3 小时前
大模型教机器人叠衣服:2025年”语言理解+多模态融合“的智能新篇
人工智能·机器人
飞翔的佩奇3 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
XINVRY-FPGA5 小时前
EPM240T100I5N Altera FPGA MAX II CPLD
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
lxmyzzs5 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv
HuggingFace5 小时前
开源开发者须知:欧盟《人工智能法案》对通用人工智能模型的最新要求
人工智能
Coovally AI模型快速验证6 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
媒体人8886 小时前
GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
大数据·人工智能
小菜AI科技7 小时前
Windsurf 评测:这款 人工智能 IDE 是你需要的颠覆性工具吗?
人工智能
RaymondZhao347 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt