OpenCV最小外接正矩形
2014-09-03 20:26
519 查看
最小外接正矩形 cvBoundingRect(contour,1)
#include "stdafx.h" #include "cv.h" #include "highgui.h" #include "cxcore.h" #include "math.h" #include <iostream.h> int main(int argc, char* argv[]) { IplImage *src; IplImage *dst; IplImage *ROI; CvMemStorage* storage=cvCreateMemStorage(0); CvSeq* contour=0; src=cvLoadImage("I:\\test.jpg",0); cvNamedWindow("image0",1); cvShowImage("image0",src); int hei=src->height; int wid=src->width; uchar *data; data=(uchar*)src->imageData; int widstep=src->widthStep; int channel=src->nChannels; dst=cvCreateImage(cvSize(wid,hei),IPL_DEPTH_8U,3); ROI=cvCreateImage(cvSize(wid,hei),IPL_DEPTH_8U,3); for (int i=0;i<hei;i++) { for(int j=0;j<wid;j++) { if (data[i*widstep+j*channel]>120) { data[i*widstep+j*channel]=0; } else { data[i*widstep+j*channel]=255; } } } cvNamedWindow("image",0); cvShowImage("image",src); printf("图像的高为:%d,宽为:%d\n\n",hei,wid); cvCvtColor(src, dst, CV_GRAY2BGR);; cvFindContours(src,storage,&contour,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE); for(;contour!=0;contour=contour->h_next) { double length =cvArcLength(contour); double area =fabs(cvContourArea(contour)); CvRect rect = cvBoundingRect(contour,1); cout<<"Length="<<length<<" Area="<<area<<endl; CvPoint p1; CvPoint p2; p1.x=rect.x; p1.y=rect.y; p2.x=rect.x+rect.width; p2.y=rect.y+rect.height; cout<<"p1=("<<p1.x<<","<<p1.y<<")"; cout<<"p2=("<<p2.x<<","<<p2.y<<")"<<endl; cvRectangle(dst,p1,p2,CV_RGB(255,0,0),1,8,0); } cvNamedWindow("dst",1); cvShowImage("dst",dst); cvWaitKey(0); return 0; }
原图:
二值化反色图:
最小正矩形图:
最小正矩形信息:
相关文章推荐
- OpenCV轮廓、边界框、最小矩形、最小闭圆检测
- opencv(23)---轮廓特征属性及应用之最小外接矩形
- 【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆
- 【OpenCV笔记 15-3】OpenCV计算物体最小包围矩形面积和周长
- python opencv minAreaRect 生成最小外接矩形
- opencv3寻找最小包围矩形在图像中的应用-滚动条
- opencv 连通区域的最小外接矩形
- opencv之轮廓最小外接矩形和最小外接圆
- Opencv绘制最小外接矩形、最小外接圆
- Opencv绘制最小外接矩形、最小外接圆
- OpenCV学习笔记(3):点集的最小外接矩形/圆,RNG类
- 使用OpenCv的cvMinAreaRect2函数获取轮廓的可倾斜最小矩形区域
- 【opencv学习之三十四】轮廓特征应用:最小外接矩形和圆
- OpenCV找出最小外接矩形
- OpenCV环境下绘制轮廓的外接多边形、最小立式矩形、最小外接圆
- Opencv绘制最小外接矩形、最小外接圆
- opencv提取图像的缺陷并用最小矩形框出来
- opencv 显示最小面积的外接矩形,并求该矩形的长和宽以及四个角的位置
- opencv3.1 example解析1 求最小包围圆和最小包围矩形以及最小包围三角形
- Opencv获取最小外接矩形——minAreaRect