当前位置:首页 > 通信资讯 > 正文

opencv 最小外接矩形(opencv最大内接矩形)

本文实例为大家分享了OpenCV实现最小外接正矩形的具体代码,供大家参考,具体内容如下

  1. #include "stdafx.h"
  2. #include "cv.h"
  3. #include "highgui.h"
  4. #include "cxcore.h"
  5. #include "math.h"
  6. #include <iostream.h>
  7. int main(int argc, char* argv[])
  8. {
  9. IplImage *src;
  10. IplImage *dst;
  11. IplImage *ROI;
  12. CvMemStorage* storage=cvCreateMemStorage(0);
  13. CvSeq* contour=0;
  14. src=cvLoadImage("I:\\test.jpg",0);
  15. cvNamedWindow("image0",1);
  16. cvShowImage("image0",src);
  17. int hei=src->height;
  18. int wid=src->width;
  19. uchar *data;
  20. data=(uchar*)src->imageData;
  21. int widstep=src->widthStep;
  22. int channel=src->nChannels;
  23. dst=cvCreateImage(cvSize(wid,hei),IPL_DEPTH_8U,3);
  24. ROI=cvCreateImage(cvSize(wid,hei),IPL_DEPTH_8U,3);
  25. for (int i=0;i<hei;i++)
  26. {
  27. for(int j=0;j<wid;j++)
  28. {
  29. if (data[i*widstep+j*channel]>120)
  30. {
  31. data[i*widstep+j*channel]=0;
  32. }
  33. else
  34. {
  35. data[i*widstep+j*channel]=255;
  36. }
  37. }
  38. }
  39. cvNamedWindow("image",0);
  40. cvShowImage("image",src);
  41. printf("图像的高为:%d,宽为:%d\n\n",hei,wid);
  42. cvCvtColor(src, dst, CV_GRAY2BGR);;
  43. cvFindContours(src,storage,&contour,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);
  44. for(;contour!=0;contour=contour->h_next)
  45. {
  46. double length =cvArcLength(contour);
  47. double area =fabs(cvContourArea(contour));
  48. CvRect rect = cvBoundingRect(contour,1);
  49. cout<<"Length="<<length<<" Area="<<area<<endl;
  50. CvPoint p1;
  51. CvPoint p2;
  52. p1.x=rect.x;
  53. p1.y=rect.y;
  54. p2.x=rect.x+rect.width;
  55. p2.y=rect.y+rect.height;
  56. cout<<"p1=("<<p1.x<<","<<p1.y<<")";
  57. cout<<"p2=("<<p2.x<<","<<p2.y<<")"<<endl;
  58. cvRectangle(dst,p1,p2,CV_RGB(255,0,0),1,8,0);
  59. }
  60. cvNamedWindow("dst",1);
  61. cvShowImage("dst",dst);
  62. cvWaitKey(0);
  63. return 0;
  64. }

原图:

opencv 最小外接矩形(opencv最大内接矩形)

二值化反色图:

opencv 最小外接矩形(opencv最大内接矩形)

最小正矩形图:

opencv 最小外接矩形(opencv最大内接矩形)

最小正矩形信息:

opencv 最小外接矩形(opencv最大内接矩形)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

原文链接:https://blog.csdn.net/suimenghuashi/article/details/39032333

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。