OpenCV绘图函数(3)判断点一条直线是否在一个矩形范围内的函数clipLine()的使用

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

算法描述

裁剪线段与图像矩形相交的部分。
cv::clipLine 函数计算出完全位于指定矩形内的线段部分。如果线段完全位于矩形之外,则返回 false。否则,返回 true。
如果线段的一部分或全部位于矩形内,则该函数会调整线段的端点坐标,使得调整后的线段完全位于矩形内。如果线段完全位于矩形之外,则函数返回 false 表示不需要裁剪。如果线段需要裁剪,则函数返回 true,并且会修改传入的线段端点坐标来反映裁剪后的结果

函数原型1

bool cv::clipLine
(
	Size 	imgSize,
	Point & 	pt1,
	Point & 	pt2 
)		

参数1

  • 参数imgSize 图像尺寸。图像矩形定义为 Rect(0, 0, imgSize.width, imgSize.height)。
  • 参数pt1 线段的第一个点。
  • 参数pt2 线段的第二个点。

函数原型2

这是重载的成员函数,为方便提供。它与上面的函数仅在所接受的参数方面有所不同。

bool cv::clipLine
(
	Size2l 	imgSize,
	Point2l & 	pt1,
	Point2l & 	pt2 
)		

参数2

  • 参数imgSize 图像尺寸。图像矩形定义为 Rect(0, 0, imgSize.width, imgSize.height)。
  • 参数pt1 线段的第一个点。
  • 参数pt2 线段的第二个点。

函数原型3

这是重载的成员函数,为方便提供。它与上面的函数仅在所接受的参数方面有所不同。

bool cv::clipLine	
(
	Rect 	imgRect,
	Point & 	pt1,
	Point & 	pt2 
)		


参数3

  • 参数imgRect 图像矩形.
  • 参数pt1 线段的第一个点。
  • 参数pt2 线段的第二个点。

代码示例


#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>

int main( int argc, char** argv )
{
    // 创建一个空白的图像
    cv::Mat image = cv::Mat::zeros( 512, 512, CV_8UC3 );

    // 定义线段的起点和终点
    cv::Point pt1( 100, 100 );  // 起始点
    cv::Point pt2( 400, 400 );  // 结束点

    // 定义图像的尺寸
    cv::Size imgSize( image.cols, image.rows );  // 图像尺寸

    // 裁剪线段
    bool clipped = cv::clipLine( imgSize, pt1, pt2 );

    // 检查裁剪结果
    if ( clipped )
    { 
        std::cout << "线段完全位于图像之内。" << std::endl;  
        // 如果线段被裁剪,则绘制裁剪后的线段
        cv::line( image, pt1, pt2, cv::Scalar( 0, 255, 0 ), 2 );
    }
    else
    {
        // 如果线段完全位于矩形之外,则不绘制
        std::cout << "线段完全位于图像之外。" << std::endl;
    }

    // 显示图像
    cv::imshow( "Clip Line Example", image );
    cv::waitKey( 0 );

    return 0;
}

运行结果

在这里插入图片描述
命令行输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2080350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现流程化办公,可专注于开源可视化报表设计器!

近日&#xff0c;有很多粉丝和朋友们会问我们关于低代码技术平台、开源可视化报表设计器的相关内容和问题。其实&#xff0c;在流程化办公新时代&#xff0c;愿意启用新软件平台的客户朋友会收获市场红利&#xff0c;也会站在前沿之地上斩获更多市场份额。今天我们就一起来了解…

【LLM之Data】SKYSCRIPT-100M论文阅读笔记

研究背景 随着短视频和短剧的兴起&#xff0c;自动化的剧本生成和短剧制作在影视行业中的需求逐渐增加。传统的剧本生成过程需要大量的人工干预&#xff0c;限制了其在规模和效率上的扩展性。当前的大型语言模型&#xff08;LLM&#xff09;在剧本生成方面展现出一定潜力&…

Leetcode面试经典150题-5.最长回文子串

解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public static String longestPalindrome(String s) {if(s null || s.length() 0) {return null;}//加工字符串&#xff0c;例如abcdcba加工成#a#b#c#d#a#b#c#d#String str getManacherString(s);char[] str…

UWB实操:用litepoint确认UWB SP0和SP3帧长度

用litepoint确认UWB SP0和SP3帧长度 预备知识 SP0 frame length Sync+SFD = 65.1+ 8.1 = 73 us

uniapp定义scss颜色变量deep()修改子组件样式

uni.scss中 import "/common/style/base-style.scss"; 在base-style.scss中 $brand-theme-color:#28B389;//品牌主体红色$border-color:#e0e0e0 ; $border-color-light:#efefef; $text-font-color-1: #000 ;//文字主色 $text-font-color-2:#676767;//副标题颜色 $…

​​聆思CSK6大模型语音视觉开发板接入AIUI技能实操(控制风扇开关)

前言 本文以大模型语音控制灯的开关为例,讲解如何通过LSPlatform的云端编排功能在大模型语音交互流程中加入AIUI技能&#xff0c;实现更丰富的产品功能。 大模型语音模板加入AIUI技能节点后的数据流程如下图所示&#xff1a; 大模型语音控制AIUI之风扇 硬件准备工作 聆思CSK6大…

使用 FinalShell 链接 Centos

1. 安装 FinalShell 下载地址&#xff1a;https://www.hostbuf.com/t/988.html 2. 查看 IP地址。 2.1 通过命令查询IP 输入 ip addr show 查询&#xff0c;输出效果如下截图&#xff0c;其中的 192.168.1.5 就是 IP 地址。 2.2 通过可视化界面查询IP 点击右上角的网络图标…

LLM自对齐技术最新研究分享(二):对齐 Pipeline 数据合成(下)

LLM 自对齐技术最新研究进展分享 系列文章继续更新啦&#xff01;本系列文章将基于下图的架构&#xff0c;对当前 Self-alignment 相关工作进行全面梳理&#xff0c;厘清技术路线并分析潜在问题。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 在上一篇…

MySQL数据库——概念与安装

目录 一、数据库的概述 1、数据库的基本概念 2、数据库管理系统&#xff08;DBMS&#xff09; 2.1、数据库管理系统概述 2.2、DBMS的工作模式 3、数据库系统&#xff08;DBS&#xff09; 3.1、数据库系统概述 3.2、数据库系统发展史 3.3、当今主流数据库介绍 4、关系…

VS2022离线安装包 - 下载安装教程

总目录 前言 一般情况下我们都是通过网络下载并安装VS2022&#xff0c;但是有些情况下&#xff0c;由于公司内部网络管理比较严格&#xff0c;可能会需要安装离线安装包这样的操作。 一、下载Visual Studio bootstrapper 进入Visual Studio bootstrapper下载界面按照如下图示…

angular xlsx-style,复杂表头样式导出

导出效果如下图所示&#xff1a; 下载xlsx npm install xlsx angular.json中引入&#xff1a; "node_modules/xlsx/dist/xlsx.full.min.js","src/assets/js/jszip.js","src/assets/js/xlsx.js" 两个插件地址&#xff1a; 上传中&#xff0c;等…

Android U WMShell动画调用堆栈

本文主要简单介绍WMShell动画调用堆栈 代码环境&#xff1a;repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r7 Systemserver侧 TAG: at com.android.server.wm.Transition.onTransactionReady(Transition.java:1575) TA…

Centos 设置成中国时区

原因是初始安装的 Centos 系统&#xff0c;时区是UTC&#xff0c;跟中国时间不一样&#xff0c;这样会导致一些问题&#xff0c;例如后面安装一些软件&#xff0c;证书认证失败等问题。 修改时间命令如下 1.首先&#xff0c;使用以下命令安装 tzdata 软件包&#xff08;如果尚…

喜羊羊做Python二级(模拟考试--易错点)

今天距离Python二级考试&#xff0c;还有28天左右。坚持每天做几套试卷&#xff0c;保持记忆和手感。 个人在做题的过程中是先不断练习选择题。当你选择题不达标的时候&#xff0c;系统不会看大题&#xff08;大概是觉得选择题都做的那么差&#xff0c;大题也不会那么好&#…

数据执行保护讲解

数据执行保护&#xff08;Data Execution Prevention&#xff0c;简称DEP&#xff09;操作系统中的一项安全功能&#xff0c;旨在防止恶意代码利用缓冲区溢出漏洞执行。它通过将内存的某些区域标记为不可执行&#xff0c;从而防止从这些区域执行代码。这适用于所有程序&#xf…

05:【江科大stm32】:定时器输出比较功能(PWM)

定时器输出比较功能&#xff08;PWM&#xff09; 1、LED呼吸灯2、PWM驱动舵机3、PWM驱动电机 1、LED呼吸灯 ①PWM.c文件的代码如下&#xff1a; #include "stm32f10x.h" // Device header/*使用定时器TIM2&#xff0c;通过通道CH1(PA0)输出PWM波 …

模型 PMI思考法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。全面评估&#xff0c;三思而后行。 1 PMI思考法的应用 1.1 个人职业发展中的PMI思考法应用 张华是一位有志于提升自己职业竞争力的职场人士。他正在考虑报名参加一个专业认证课程&#xff0c;以期提…

Windows安装Ora2Pg(迁移表结构,表数据)

版本&#xff1a; windows server 2012 R2 oracle 12 说明&#xff1a; 目前该操作是在安装了oracle的机子上做的。 1、安装perl Strawberry Perl下载地址&#xff1a; Strawberry Perl for Windows - Releases 选择一个合适的版本&#xff0c;下载下来之后只需要选择…

百度广告联盟:抢占流量蓝海,精准营销新引擎

百度广告联盟&#xff1a;抢占流量蓝海&#xff0c;精准营销新引擎 在数字营销时代&#xff0c;争夺消费者的注意力与流量成为品牌竞争的关键。百度广告联盟&#xff0c;作为互联网营销领域的佼佼者&#xff0c;凭借其广泛的平台覆盖、精准的受众定位以及丰厚的合作回报…

水稻病害-目标检测数据集(包括VOC格式、YOLO格式)

水稻病害-目标检测数据集&#xff08;包括VOC格式、YOLO格式 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1eiygobnVJklOdgyCwb2RVg?pwdvsoc 提取码&#xff1a;vsoc 数据集信息介绍&#xff1a; 共有 2148 张图像和一一对应的标注文件 标注文件格式提供了…