opencv之求各连通区域内目标的最小外接矩形及其长、宽(共4页)_第1页
opencv之求各连通区域内目标的最小外接矩形及其长、宽(共4页)_第2页
opencv之求各连通区域内目标的最小外接矩形及其长、宽(共4页)_第3页
opencv之求各连通区域内目标的最小外接矩形及其长、宽(共4页)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上10、 最小外接矩形及长宽的求法 liuqingjie2#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* file

2、name=argc=2?argv1:"5.jpg"if(!filename)printf("can't open the file:%dn",filename); src=cvLoadImage(filename,1);cvNamedWindow("image",1);cvShowImage("image",src); gray=cvCreateImage(cvSize(src->width,src->height),src->depth,1);cvCvtColor(src,gray,CV

3、_BGR2GRAY); hei=gray->height;/注意此处是gray,otsu中要用到hei,wid,已在otsu.h中全局定义;wid=gray->width;printf("图像的高为:%d,宽为:%dnn",hei,wid);cvNamedWindow("image2",1); cvShowImage("image2",gray); bw=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1); otsu(gray,bw); cvNamedWindow("imag

4、e4",1);cvShowImage("image4",bw);/wb=cvCloneImage(bw); / cvNot(bw,wb); 只有当目标区域为黑色背景时候,才对其取反。dst=cvCloneImage(src);cvFindContours(bw,storage,&contour,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE); for(;contour!=0;contour=contour->h_next)CvBox2D rect=cvMinAreaRect2(conto

5、ur,storage);CvPoint2D32f rect_pts04;cvBoxPoints(rect, rect_pts0);/因为cvPolyLine要求点集的输入类型是CvPoint*/所以要把 CvPoint2D32f 型的 rect_pts0 转换为 CvPoint 型的 rect_pts/并赋予一个对应的指针 *ptint npts = 4,k=0;int aaa=0,bbb=0;CvPoint rect_pts4, *pt = rect_pts;printf("连通区域最小外接矩形顶点坐标分别为:n");for (int i=0; i<4; i+)re

6、ct_ptsi= cvPointFrom32f(rect_pts0i);printf("%d %dn",rect_ptsi.x,rect_ptsi.y);aaa=(int)sqrt(pow(rect_pts0.x-rect_pts1.x),2)+pow(rect_pts0.y-rect_pts1.y),2);bbb=(int)sqrt(pow(rect_pts0.x-rect_pts3.x),2)+pow(rect_pts0.y-rect_pts3.y),2);if(aaa<bbb)k=aaa;aaa=bbb;bbb=k;printf("最小外接矩形的长为:

7、%d,宽为:%d。nn",aaa,bbb);/chang=rect_pts0-rect_pts3;/kuan=rect_pts0-rect_pts1;/printf("最小外接矩形的长为:%d,宽为:%dn",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")

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论