首页 > 其他分享 >OPenCV结构分析与形状描述符(3)计算一个点集的最小外接矩形的函数boundingRect()的使用

OPenCV结构分析与形状描述符(3)计算一个点集的最小外接矩形的函数boundingRect()的使用

时间:2024-09-05 12:49:42浏览次数:11  
标签:外接 boundingRect Point 最小 OPenCV 灰度 矩形 cv

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

算法描述

计算一个点集的最小右上边界矩形或灰度图像中的非零像素。
该函数计算并返回指定点集或灰度图像中非零像素的最小右上边界矩形。

在OpenCV中,boundingRect函数用于找到一个点集的最小外接矩形。这个矩形是最小的能够完全包含给定点集的轴对齐矩形。该函数常用于图像处理和计算机视觉应用中,例如物体检测和识别中的边界框计算。

函数原型


Rect cv::boundingRect	
(
	InputArray 	array
)	

参数

  • 参数array 输入的灰度图像或二维点集,存储在 std::vector 或 Mat 中。

代码示例


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

int main()
{
    // 创建一些点
    std::vector< cv::Point > points = { cv::Point( 10, 10 ), cv::Point( 20, 20 ), cv::Point( 30, 30 ), cv::Point( 40, 40 ) };

    // 获取这些点的最小外接矩形
    cv::Rect boundRect = cv::boundingRect( points );

    // 打印出矩形的信息
    std::cout << "Bounding Rectangle: (" << boundRect.x << ", " << boundRect.y << ", " << boundRect.width << ", " << boundRect.height << ")" << std::endl;

    // 如果你想在图像上绘制这个矩形,你可以这样做
    cv::Mat img( 100, 100, CV_8UC3, cv::Scalar( 255, 255, 255 ) );  // 创建一个空白图像
    cv::rectangle( img, boundRect, cv::Scalar( 0, 0, 255 ), 2 );    // 绘制红色矩形

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

    return 0;
}

运行结果

在这里插入图片描述

标签:外接,boundingRect,Point,最小,OPenCV,灰度,矩形,cv
From: https://blog.csdn.net/jndingxin/article/details/141890917

相关文章

  • opencv全面详解教程
    opencv全面详解教程1.OpenCV简介2.安装OpenCV2.1使用pip安装(适用于Python)2.2通过conda安装2.3从源码编译(高级)3.OpenCV基本操作3.1读取和显示图像3.2保存图像3.3视频处理4.图像处理操作4.1调整大小和裁剪4.2颜色空间转换4.3图像平滑(滤波)4.4边......
  • OpenCV使用RTMP流
    使用RTMP流之前使用nginx进行推流sudoapt-getinstallnginxlibnginx-mod-rtmp配置文件中添加以下内容:rtmp{server{listen1935;chunk_size4096;applicationlive{liveon;recordoff;}}}Linux下安......
  • 《OpenCV计算机视觉》—— 图像轮廓检测与绘制
    文章目录一、轮廓的检测二、轮廓的绘制图像轮廓检测与绘制的代码实现三、轮廓的近似一、轮廓的检测轮廓检测是指在包含目标和背景的数字图像中,忽略背景和目标内部的纹理以及噪声干扰的影响,采用一定的技术和方法来实现目标轮廓提取的过程注意:做轮廓检测前需要将图片......
  • 《OpenCV计算机视觉》—— 模板匹配
    文章目录一、模板匹配简单介绍二、三个主要函数的介绍1.执行模板匹配函数-cv2.matchTemplate()2.查找最佳匹配函数-cv2.minMaxLoc()3.在原图上绘制匹配区域函数-cv2.rectangle()三、代码实现一、模板匹配简单介绍在Python中,模板匹配是一种在图像中查找与给定模板最......
  • OpenCV 之图像平滑处理
    引言图像平滑处理(也称为“模糊处理”)是计算机视觉中一项非常基础的技术,常用于减少图像噪声或失真,提高图像质量。平滑处理可以通过各种滤波器实现,常见的滤波器包括均值滤波、方框滤波、高斯滤波和中值滤波。本文将详细介绍这些滤波器的原理及其在OpenCV中的具体实现。基础概......
  • opencv轮廓近似,模板匹配
    在图像处理领域,轮廓近似和模板匹配是两种非常关键的技术,它们广泛应用于计算机视觉、图像分析和图像识别等多个方面。本文将详细介绍如何使用OpenCV库进行轮廓近似和模板匹配,并给出具体的代码示例。一、轮廓近似(ContourApproximation)轮廓近似是指将图像中的轮廓逼近成由直线......
  • 【全网独家】OpenCV: 影像格式(Mat)
    OpenCV:影像格式(Mat)介绍在OpenCV中,Mat是一个非常重要的数据结构,用于表示二维的图像数据。它能够支持多种类型的数据存储,包括灰度图、彩色图以及多通道图像。特点多维矩阵:支持多维度矩阵操作。高效内存管理:使用引用计数来确保内存资源安全且高效地释放。灵活性:......
  • 【OpenCV】手势识别实现电脑音量控制
            从AdvanceComputerVisionwithPython-ComputerVisionZone 这个网站上找到了一些有关人脸识别和手势识别的示例代码与课程,记录一下学习的过程和结果,Python初学,写得比较基础。            代码基本是流程类的代码,核心功能在导入的库中......
  • 图像边缘检测技术详解:利用OpenCV实现Sobel算子
    图像边缘检测技术详解:利用OpenCV实现Sobel算子前言Sobel算子的原理代码演示结果展示结语前言  在数字图像处理的广阔领域中,边缘检测技术扮演着至关重要的角色。无论是在科学研究、工业自动化,还是在日常生活中的智能设备中,我们都需要从图像中提取有用的信息。边缘,作......
  • 老人跌倒检测识别预警系统 Opencv
    老人跌倒检测识别预警系统采用物联网技术,老人跌倒检测识别预警系统通过人工智能视频分析算法利用在养老院的房间、走廊等区域安装监控摄像头,老人跌倒检测识别预警系统对老人的行为进行实时监测。当老人发生跌倒时,系统将自动发出警报,并对老人的状态进行识别和分析,及时通知现场护理人......