本文主要是介绍资料结构操作与运算-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资料结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!