资料结构操作与运算-CvRect,CvBox2D资料结构

2023-11-30 05:32

本文主要是介绍资料结构操作与运算-CvRect,CvBox2D资料结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 转自http://hi.baidu.com/%C3%B5%D1%A9%D3%C4%CF%E3/blog/item/9fbd6b3f55e1e23471cf6cf8.html

这两个资料结构都是OpenCV ,roi专用的资料结构,roi,全名的意思就是感兴趣的区域(感兴趣区) ,对于图形来讲,总是有一些物体或是重要的图像是我们必须要做研究,追踪或分析的,物件追踪在影像处理也是很大的一们领域,举凡是人脸追踪,汽车追踪,鸟类追踪,或是图形检索都是可以利用的roi的资料结构做实作的,而研究或分析的部份,则是对感兴趣的区域实作特殊的演算法,或是对他做纹理或特征分析,再资讯比对上面会得到很大的帮助。而CvRect资料结构则是画方框, CvBox2D则是椭圆形的制作,一般感兴趣区域演算法都是用方框CvRect来做实作, CvBox2D则是在OpenCV用人脸椭圆追踪比较用的到。

这张图片则是简单的实作撷取感兴趣的区域,图中人物的头像被cvRect资料结构设定,传给IplImage资料结构而被抓到了,这只是一个简单的手动抓人物的实作.这边ROI的制作方式有很多种,这边只是其中一种的介绍,之后还会有ROI相关的函式应用,在这张图片内,利用cvRect()撷取感兴趣位置的座标,以及他的区块大小,前两个参数是座标,后两个是宽跟高,再将cvRect资料结构用cvRectToROI()转成IplROI格式,然后直接给IplImage资料结构内的ROI,而Rect2的实作也只是把IplROI结构转换成CvRect的资料结构罢了,而如果把IplImage资料结构的ROI设定成NULL,那又会回到原图影像大小了,在这边cvRectToROI()的第二个参数是COI(Color Of Interesting)感兴趣的通道颜色,而在OpenCV的cvShowImage()没有被实作出来,而它还是在其他演算法函式上被用的到.

CvRect 
矩形框的偏移和大小 

typedef struct CvRect
{
int x; /* 方形的最左角的x-坐标 */
int y; /* 方形的最上或者最下角的y-坐标 */
int width; /* 宽 */
int height; /* 高 */
}
CvRect;
/* 构造函数*/
inline CvRect cvRect( int x, int y, int width, int height );

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"

int main()
{
     IplImage *Image1;
     IplROI ROI;
     CvRect Rect1,Rect2;
     Image1=cvLoadImage("coast2.jpg",1);
     Rect1=cvRect(200,50,100,100);
     ROI=cvRectToROI(Rect1,0);
     Image1->roi=&ROI;

     Rect2=cvROIToRect(*Image1->roi);

     cvNamedWindow("Coast(Region Of Interesting)",1);
     cvShowImage("Coast(Region Of Interesting)",Image1);

     Image1->roi=NULL;
     cvNamedWindow("Coast",1);
     cvShowImage("Coast",Image1);

     cvWaitKey(0);
}

CvBox资料结构
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <stdlib.h>


int main()
{
     CvPoint2D32f Point1 =cvPoint2D32f(200,200);
     CvSize2D32f Size1 = cvSize2D32f(50,50);
     CvBox2D Box1;

     Box1.center=Point1;
     Box1.size=Size1;
     Box1.angle=90;

     printf("Box Point is :(%.1f,%.1f)\n",Box1.center.x,Box1.center.y);
     printf("Box Size is : (%.1f,%.1f)\n",Box1.size.width,Box1.size.height);
     printf("Box Angle is : %.1f\n",Box1.angle);
     system("pause");
}

这篇关于资料结构操作与运算-CvRect,CvBox2D资料结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435817

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要