OpenCV的Rect()函数、Rectangle()函数、matchTemplate()参数详解 |
您所在的位置:网站首页 › c语言rect › OpenCV的Rect()函数、Rectangle()函数、matchTemplate()参数详解 |
OpenCV的函数
Rect()函数cvRectangle与cv::rectanglematchTemplate()归一化函数normalize()
Rect()函数
基本概念: Rect(int x, int y, int width, int height); 参数含义: Rect(左上角x坐标 , 左上角y坐标,矩形的宽,矩形的高) 例如我们画一个图 Rect(20,50,30,40), 我用matlab画了一下,比较直观 那对于Rect(20,50,30,40)有哪些常用的操作? rect.area(); //返回面积,1200 rect.size();//返回尺寸,30x40 rect.tl();// 返回左上角坐标(20,50) rect.br();//返回右下角坐标(50,10) rect.width();//返回宽度30 rect.height();//返回高度40 rect.contains(Point(x,y)) ; //返回布尔true/false, 判断x,y是否在这个矩形中 交集、并集, 矩阵对比,很像C语言 rect = rect1 & rect2; rect = rect1 | rect2; rect1 == rect2; //返回布尔值 rect1 != rect2 ; //返回布尔值 Rectangle用法 void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 ); img: 图像. pt1 :矩形的一个顶点。 pt2:矩形对角线上的另一个顶点 color:线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。 //后面这三个都是可有可没有的 thickness:组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。 line_type:线条的类型。见cvLine的描述 shift:坐标点的小数点位数。举例子: rectangle(img, box.tl(), box.br(), Scalar(g_rng.uniform(0, 255), g_rng.uniform(0, 255), g_rng.uniform(0, 255)));//随机颜色 cvRectangle与cv::rectangle在第一次使用cvRectangle绘制矩形的时候遇到一个问题:Error:不存在从“cv::Mat”到"CvArr*"的适当转换函数,就特意查了查资料,总结如下。 cvRentangle和cv::rectangle函数原型对比: C: void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 ) C++: void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0) C++: void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 ) 参数介绍: img 图像. pt1 矩形的一个顶点。 pt2 矩形对角线上的另一个顶点 color 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。 thickness 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。 line_type 线条的类型。见cvLine的描述 shift 坐标点的小数点位数。 代码: #include #include using namespace std; using namespace cv; int main() { char *imageSrc = "I:\\OpenCV Learning\\picture\\sumpalace.jpg"; Mat matImage = imread(imageSrc,-1); IplImage *iplImage = cvLoadImage(imageSrc,-1); if(matImage.data==0||iplImage->imageData ==0) { cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |