C++使用opencv判断一个点是否在多边形之内

简介: C++使用opencv判断一个点是否在多边形之内

代码如下:

#include <opencv2/opencv.hpp>
CvMat* g_pMatContour = NULL;
static void process(...)
{
    if (g_pMatContour == NULL)
    {
        float points[] ={470,240, 1670,168, 1846,688, 714,928};
        int nContourNum = 4;
        g_pMatContour = cvCreateMat(1, nContourNum, CV_32FC2);
        for (int i=0; i<nContourNum; i++)
        {
            CvScalar vertex = cvScalar(points[i*2], points[i*2+1]);
            cvSet1D(pMatContour, i, vertex);
        }
    }
    CvPoint2D32f ptTest;
    //center point
    ptTest.x = pClip->left + pClip->width /2;
    ptTest.y = pClip->top  + pClip->height/2;
    double jl = cvPointPolygonTest(g_pMatContour, ptTest, 1);
    //jl > 0表示在内部。jl<0表示在外部。jl=0表示在多边形上。
    if (jl > 0)
    {
        //WARNING MESSAGE
    }
目录
相关文章
|
3月前
|
存储 计算机视觉 异构计算
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
40 0
|
3月前
|
算法 API 计算机视觉
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
29 0
|
1月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
64 7
|
4月前
|
存储 新制造 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为Mat图像格式(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为Mat图像格式(C++)
42 2
|
2月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
|
4月前
|
存储 监控 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
37 0
|
1月前
|
人工智能 机器人 Linux
【C++】Linux下如何查看opencv的版本
【C++】Linux下如何查看opencv的版本
|
2月前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
|
2月前
|
算法 计算机视觉 C++
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
|
2月前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Canny边缘检测算法
Opencv(C++)学习系列---Canny边缘检测算法