首页 > 其他分享 >OpenCV(cv::circle())

OpenCV(cv::circle())

时间:2024-08-27 16:51:37浏览次数:4  
标签:int cv OpenCV 图像 circle 默认值 LINE

目录



cv::circle() 是 OpenCV 提供的一个函数,用于在图像上绘制圆形。它非常适用于在图像处理任务中标记特定的点或区域。这个函数具有多种参数,允许你根据需要控制圆的颜色、位置、半径和边界厚度。

1. 函数

void cv::circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)

参数:

  1. img (InputOutputArray):

    • 输入/输出图像。在此图像上绘制圆形。
    • 图像可以是灰度图像或彩色图像。
  2. center (Point):

    • 圆心的坐标,用 cv::Point(x, y) 表示。xy 是圆心的像素坐标。
  3. radius (int):

    • 圆的半径,以像素为单位。
  4. color (Scalar):

    • 圆的颜色。
    • 对于彩色图像,颜色通过 cv::Scalar(blue, green, red) 定义,注意顺序为 BGR。
    • 对于灰度图像,颜色为单个强度值,如 cv::Scalar(255) 表示白色。
  5. thickness (int, 默认值 = 1):

    • 圆的边界厚度。
    • 如果 thickness 为正数,则表示边界线的厚度。
    • 如果 thickness = FILLED (-1),圆将被填充。
  6. lineType (int, 默认值 = LINE_8):

    • 线条的类型,可以是以下选项之一:
      • LINE_8:8-connected 线条 (默认值)。
      • LINE_4:4-connected 线条。
      • LINE_AA:抗锯齿线条(更平滑的圆)。
  7. shift (int, 默认值 = 0):

    • 圆心坐标和半径的小数位精度(位移)。默认值 0 表示整数精度。


2. 示例

以下是一个简单的使用 cv::circle() 函数绘制圆的例子:

#include <opencv2/opencv.hpp>

int main() {
    // 创建一个黑色图像
    cv::Mat img = cv::Mat::zeros(400, 400, CV_8UC3);

    // 定义圆心坐标
    cv::Point center(200, 200);

    // 半径
    int radius = 50;

    // 颜色(蓝色 BGR:255, 0, 0)
    cv::Scalar color(255, 0, 0);

    // 绘制圆
    cv::circle(img, center, radius, color, 2);

    // 显示图像
    cv::imshow("Circle", img);
    cv::waitKey(0);

    return 0;
}


3. 说明

  • 抗锯齿圆:通过设置 lineTypeLINE_AA,可以使圆的边缘更加平滑。这在绘制较大或较小的圆时非常有用。
  • 坐标精度:如果你需要绘制亚像素级别的圆形,可以调整 shift 参数。例如,如果 shift = 1,则 center.x = 2 实际表示 1.0 像素。


4. 使用场景

  • 在计算机视觉任务中用于标记检测到的特征点或对象中心位置。
  • 用于在图像分析中可视化目标检测结果,例如目标检测算法中标记目标物体的位置。
  • 在图像上绘制标志性区域或参考点以进行进一步处理。


标签:int,cv,OpenCV,图像,circle,默认值,LINE
From: https://www.cnblogs.com/keye/p/18383018

相关文章

  • 从0到1构建视频汇聚生态:EasyCVR流媒体协议支持的前瞻性布局
    TSINGSEE青犀EasyCVR视频汇聚平台是一款基于云-边-端一体化架构的视频融合+AI智能分析平台,广泛应用于工地、仓储、工厂、社区、校园、楼宇等多个领域。平台凭借其强大的数据接入、处理、转码及分发能力,在视频监控领域展现出显著的技术优势和应用前景。本文将详细介绍EasyCVR视频汇......
  • 高效能低延迟:EasyCVR平台WebRTC支持H.265在远程监控中的优势
    TSINGSEE青犀视频EasyCVR视频汇聚平台在WebRTC方面确实支持H.265编码,尽管标准的WebRTCAPI在大多数浏览器中默认并不支持H.265(也称为HEVC,高效视频编码)编码。EasyCVR平台通过一系列创新的技术手段,实现了在WebRTC协议下对H.265视频的支持。EasyCVR平台采取了将视频以H.265编码并搭......
  • 安防视频汇聚平台EasyCVR启动后无法访问登录页面是什么原因?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T28181协议、部标JT808、GA/T1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等。有用户反馈,安防监控系统......
  • EasyCVR视频平台革新播放体验:WebRTC协议赋能H.265视频流畅传输
    随着科技的飞速发展和网络技术的不断革新,视频监控已经广泛应用于社会各个领域,成为现代安全管理的重要组成部分。在视频监控领域,视频编码技术的选择尤为重要,它不仅关系到视频的质量,还直接影响到视频的传输效率和兼容性。H.265(HEVC)作为新一代视频编码标准,以其更高的压缩效率和更好的......
  • EasyCVR视频汇聚平台:巧妙解决WebRTC无法播放H.265视频的难题
    随着科技的飞速发展,视频监控已经成为现代安全管理不可或缺的一部分,广泛应用于智慧工地、智慧煤矿、智慧工厂、智慧社区和智慧校园等多个领域。在这个过程中,视频编码技术和实时通信技术显得尤为重要。EasyCVR视频汇聚平台,凭借其强大的视频处理能力和灵活的协议支持,成功地将WebRTC与......
  • 国标GB28181视频监控EasyCVR视频汇聚平台国标注册被陌生IP入侵如何处理?
    GB28181国标/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存......
  • 安防监控/软硬一体/视频汇聚网关EasyCVR硬件启动崩溃是什么原因?
    安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、WS-FMP4、HTTP-FMP4等,这为其在各种复杂环境下的部署提供......
  • EasyCVR视频汇聚平台:巧妙解决WebRTC无法播放H.265视频的难题
    随着科技的飞速发展,视频监控已经成为现代安全管理不可或缺的一部分,广泛应用于智慧工地、智慧煤矿、智慧工厂、智慧社区和智慧校园等多个领域。在这个过程中,视频编码技术和实时通信技术显得尤为重要。EasyCVR视频汇聚平台,凭借其强大的视频处理能力和灵活的协议支持,成功地将WebRT......
  • [QT]QSharedMemory读写cv::Mat
    1.写入共享内存voidWriteMat(constchar*section,constcv::Mat&img){QSharedMemory*mem=newQSharedMemory();mem->setKey(section);intsize=img.cols*img.rows*img.channels();//cols+rows+channels+data//ifexistreturn......
  • 基于OpenCV-Python实现人脸识别-----摄像头捕获人脸图像显示中文乱码问题
    基于OpenCV-Python实现人脸识别时,为了使图像上显示识别到人员的中文名字,做了几次尝试,使用PIL.Image和OpenCV图像格式相互转换解决:使用OpenCV将图片灰度化,对加载的灰度化图使用分类器中的detectMultiScale()函数查找目标人脸,并使用for循环实现矩形框和圆形框框住查找到的人脸。......