opencv 连通区域的最小外接矩形
来源:互联网 发布:淘宝达人和微淘 编辑:程序博客网 时间:2024/04/28 15:03
#include "cv.h"#include "highgui.h"#include <stdio.h>#include <math.h>//#include "otsu.h"int main(int argc,char** argv){IplImage *src,*gray,*bw,*dst; CvMemStorage* storage=cvCreateMemStorage(0);CvSeq* contour=0;char* filename=argc==2?argv[1]:"5.jpg";if(!filename)printf("can't open the file:%d\n",filename); src=cvLoadImage("D:\\xsz\\Debug\\图片\\3.jpg",1);cvNamedWindow("image",1);cvShowImage("image",src); gray=cvCreateImage(cvSize(src->width,src->height),src->depth,1);cvCvtColor(src,gray,CV_BGR2GRAY);int hei,wid; hei=gray->height;//注意此处是gray,otsu中要用到hei,wid,已在otsu.h中全局定义;wid=gray->width;printf("图像的高为:%d,宽为:%d\n\n",hei,wid);cvNamedWindow("image2",1); cvShowImage("image2",gray); bw=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1); cvThreshold(gray,bw,128,255,CV_THRESH_BINARY_INV); cvNamedWindow("image4",1);cvShowImage("image4",bw);//wb=cvCloneImage(bw); // cvNot(bw,wb); 只有当目标区域为黑色背景时候,才对其取反。dst=cvCloneImage(src);cvFindContours(bw,storage,&contour,sizeof(CvContour),CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE); for(;contour!=0;contour=contour->h_next){CvBox2D rect=cvMinAreaRect2(contour,storage);CvPoint2D32f rect_pts0[4];cvBoxPoints(rect, rect_pts0);//因为cvPolyLine要求点集的输入类型是CvPoint**//所以要把 CvPoint2D32f 型的 rect_pts0 转换为 CvPoint 型的 rect_pts//并赋予一个对应的指针 *ptint npts = 4,k=0;int aaa=0,bbb=0;CvPoint rect_pts[4], *pt = rect_pts;printf("连通区域最小外接矩形顶点坐标分别为:\n");for (int i=0; i<4; i++){rect_pts[i]= cvPointFrom32f(rect_pts0[i]);printf("%d %d\n",rect_pts[i].x,rect_pts[i].y);aaa=(int)sqrt((pow((rect_pts[0].x-rect_pts[1].x),2)+pow((rect_pts[0].y-rect_pts[1].y),2)));bbb=(int)sqrt((pow((rect_pts[0].x-rect_pts[3].x),2)+pow((rect_pts[0].y-rect_pts[3].y),2)));if(aaa<bbb){k=aaa;aaa=bbb;bbb=k;}}printf("最小外接矩形的长为:%d,宽为:%d。\n\n",aaa,bbb);//chang=rect_pts[0]-rect_pts[3];//kuan=rect_pts[0]-rect_pts[1];//printf("最小外接矩形的长为:%d,宽为:%d\n",chang,kuan);//画出BoxcvPolyLine(dst, &pt, &npts, 1, 1, CV_RGB(255,0,0), 1); }cvNamedWindow("image5",1);cvShowImage("image5",dst);cvWaitKey(0);//注意此句放的位置,放的不对则。。。cvDestroyWindow("image");cvDestroyWindow("image2");cvDestroyWindow("image4");cvDestroyWindow("image5");cvReleaseImage(&src);cvReleaseImage(&gray);cvReleaseImage(&bw);cvReleaseImage(&dst);return 0;}
- opencv 连通区域的最小外接矩形
- OpenCV最小外接矩形
- OpenCV最小外接正矩形
- OpenCV找出最小外接矩形
- Opencv绘制最小外接矩形、最小外接圆
- Opencv绘制最小外接矩形、最小外接圆
- opencv中最小外接矩形2 的算法
- OPENCV连通域分析,画连通域的外接矩形程序示例
- python opencv minAreaRect 生成最小外接矩形
- Opencv寻找轮廓的最小外接矩形,并获取矩形的中心点,旋转角度
- opencv 轮廓的长度,面积,外接矩形(平行坐标轴),处接最小矩形,处接圆 , 椭圆
- opencv 轮廓的长度,面积,外接矩形(平行坐标轴),处接最小矩形,处接圆 , 椭圆
- OpenCV环境下绘制轮廓的外接多边形、最小立式矩形、最小外接圆
- opencv之轮廓最小外接矩形和最小外接圆
- UVA10173(求凸包的面积最小外接矩形)
- 获取轮廓的最小外接矩形
- Opencv 轮廓 逼近多边形曲线 正外接矩形 外接最小矩形
- OpenCV学习笔记(3):点集的最小外接矩形/圆,RNG类
- GPS初步学习
- 随机数的应用相关
- HDU 1003 Max Sum + 单调队列优化dp解法
- 再谈升/降序子序列——POJ1631
- 日期类型的数据相减
- opencv 连通区域的最小外接矩形
- Spring事务管理一:Spring事务管理的优点
- 第二章 算法分析
- Create Your Own Search Engine with Python 用python创建你自己的搜索引擎(二)
- ajax中弹出提示框
- Weblogic知识总结
- 求职面试掌握4技巧
- 二维数组
- ashx文件