首页 > 其他分享 >OpenCV结构分析与形状描述符(16)判断两个凸多边形是否相交的函数intersectConvexConvex()的使用

OpenCV结构分析与形状描述符(16)判断两个凸多边形是否相交的函数intersectConvexConvex()的使用

时间:2024-09-11 09:52:25浏览次数:13  
标签:std 多边形 16 intersectConvexConvex 凸多边形 Vertex 相交 cv

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

算法描述

查找两个凸多边形的交集。
intersectConvexConvex 是一个在 OpenCV 中用于判断两个凸多边形是否相交的函数。此函数可以帮助我们确定两个二维凸多边形是否在平面上有重叠区域。

函数原型

float cv::intersectConvexConvex
(
	InputArray 	p1,
	InputArray 	p2,
	OutputArray 	p12,
	bool 	handleNested = true 
)		

参数

  • 参数p1 第一个多边形
  • 参数p2 第二个多边形
  • 参数p12 表示相交区域的输出多边形
  • 参数handleNested 当为真时,如果一个多边形完全包含在另一个多边形内,则会找到相交部分。当为假时,则不会找到相交部分。如果多边形共享一条边或一个顶点位于另一个多边形的边上,它们不被视为嵌套,无论 handleNested 的值如何,都会找到相交部分。

代码示例

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

int main()
{
    // 定义两个矩形的顶点
    cv::Mat p1 = ( cv::Mat_< float >( 4, 2 ) << 0, 0,  // 左上角
                   2, 0,                               // 右上角
                   2, 2,                               // 右下角
                   0, 2 );                             // 左下角

    cv::Mat p2 = ( cv::Mat_< float >( 4, 2 ) << 1, 1,  // 左上角
                   3, 1,                               // 右上角
                   3, 3,                               // 右下角
                   1, 3 );                             // 左下角

    // 定义一个矩阵来存储交集的顶点
    cv::Mat p12;

    // 调用 intersectConvexConvex 函数
    bool intersect = cv::intersectConvexConvex( p1, p2, p12, true );

    if ( intersect )
    {
        std::cout << "Polygons intersect." << std::endl;
        std::cout << "Intersection vertices:" << std::endl;
        for ( int i = 0; i < p12.rows; ++i )
        {
            cv::Point2f pt = p12.at< cv::Point2f >( i );
            std::cout << "Vertex " << i << ": (" << pt.x << ", " << pt.y << ")" << std::endl;
        }
    }
    else
    {
        std::cout << "Polygons do not intersect." << std::endl;
    }

    return 0;
}

运行结果

Polygons intersect.
Intersection vertices:
Vertex 0: (2, 1)
Vertex 1: (2, 2)
Vertex 2: (1, 2)
Vertex 3: (1, 1)

标签:std,多边形,16,intersectConvexConvex,凸多边形,Vertex,相交,cv
From: https://blog.csdn.net/jndingxin/article/details/142104384

相关文章

  • 2016 ACM/ICPC Asia Regional Qingdao Online(SDKD 2024 Summer Training Contest H2)
    A-ICountTwoThree题意给定n,求第一个\(\ge\)n的数k,且k=\(2^a3^b5^c7^d\)。思路考虑到样例很多,直接打表存入set省去数组排序操作,由于n$\le$1e9,所以只需要打到1e9后二分即可。(记得加上快读快写,T得饱饱的......
  • CF1672F2 Checker for Array Shuffling 题解
    题目链接点击打开链接题目解法我怎么F1都不会做/llF1:由原始值向最终值连边如果是排列的话,操作次数显然为\(n-\)环数拓展到非排列的情况,即相同数之间的下标可以选择顺序,要求分出来的环数最大直接考虑上面的这东西,让我进入了死胡同。。先给出一个结论:最大环数的最小值是......
  • 7-16 PTA 含8的数字的个数分数 4
    现代人对数字越来越讲究,都喜欢含有8的数字。现要你编程计算a至b之间的含有数字8的数的个数(比如181,88,8,28这些数都含有数字8,而21,45,49等没有含有数字8)。输入格式:在一行中输入两个正整数a和b,用一个空格隔开。0<a<=b<100000。输出格式:输出a和b之间含有8的数的个数。包括a......
  • luogu2516题解
    随机说话第一次交的时候写的版本是这个。下面在sum的计算上少了个else,遂出错。以后写的时候还是尽量简单点,主要是调试的时候好调。题目分析题目里面的公共子序列就是可以不连续可以为空的在字符串里出现顺序相同的子串。对于一个公共子序列,在找到最后一个公共的字符的时......
  • Xcode 16 RC (16A242) 发布下载,正式版下周公布
    Xcode16RC(16A242)-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS请访问原文链接:https://sysin.org/blog/apple-xcode-16/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgXcode16的新功能使用预测代码补全功能和更快的预览功能,将奇思妙想转......
  • saber2016安装教程
    saber2016安装教程-知乎(zhihu.com)第一步:保证解压时某些应用程序不会被系统当作病毒自动删除。①下载安装包②断网;③关闭防火墙;④关闭windows安全中心—病毒和威胁防护—实时保护。解压文件包。“Saber_L-2016.03”用以安装;“license”文件夹用以破解。注意如果防......
  • 3SRB5016-ASEMI三相整流桥3SRB5016
    编辑:ll3SRB5016-ASEMI三相整流桥3SRB5016型号:3SRB5016品牌:ASEMI封装:3SRB-5批号:2024+现货:50000+最大重复峰值反向电压:1600V最大正向平均整流电流(Vdss):50A功率(Pd):大功率芯片个数:5引脚数量:5安装方式:直插类型:整流扁桥、整流桥正向浪涌电流:500A正向电压:1.00V~1.30V封......
  • 基于ssm的校园拼车服务系统的设计与实现-附源码211633
    摘 要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设校......
  • P7230 [COCI2015-2016#3] NEKAMELEONI
    这个做法与\(k\)无关。非常好常数,爱来自Hanghang。Hanghang给出了一个空间\(O(n)\),常数很小,代码很短的单侧递归做法。我们考虑维护哪些区间是不符合要求的,对于一个数\(a_x\),下一个\(a_x\)下标是\(d_x\),则满足\(x<l\ler<d_x\)的区间\((l,r)\)是不符合要求的。然......
  • iPhone 16正式亮相:5款配色 群青色抢眼
    9月10日消息,在今天凌晨1点的新品发布会上,苹果公司正式推出了备受期待的iPhone16系列。iPhone16采用了独特的融色玻璃背板设计,提供五种配色,其中新增的群青色款引人注目,而广受期待的粉色款也重磅回归。与此前传闻一致,iPhone16保持了6.1英寸的屏幕尺寸,而iPhone16Plus则继续采......