精华内容
下载资源
问答
  • 多边形最小外接矩形算法 程鹏飞 题目 给出求一个多边形最小外接矩形的算法并证明求得的是最小外接矩形. 最小外接矩形英文简称为SMBR(smallest minimum bounding rectangle,它和MBR(minimum bounding rectangle)不...
  • 简单多边形的最小外接矩形算法,适用于玻璃排样等。
  • 最小外接矩形

    2018-05-09 09:39:35
    利用opencv找图像中形状的最小外接矩形,进而可获得最小外接矩形的信息等
  • 主要为大家详细介绍了Opencv绘制最小外接矩形、最小外接圆的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 提出并实现了一种解算点群、线群以及面群最小外接矩形的新算法。首先将求解点群、线群以及面群的最小外接矩形问题全部转化为求解构成这些几何对象的边界点集合凸壳的最小外接矩形问题;其次,在算法中采用几何计算...
  • nbsp图形图像一种获取图像区域最小外接矩形算法及实现.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔...

    您所在位置:网站首页 > 海量文档

    &nbsp>&nbsp计算机&nbsp>&nbsp图形图像

    a476e75ce57e4882405abe7b4456fc6b.gif

    一种获取图像区域最小外接矩形的算法及实现.pdf3页

    本文档一共被下载:2377011b61454b208b34ad77b4c31088.gif次,您可全文免费在线阅读后下载本文档。

    072ad097814a33d1ad18e33ca14a5a9e.png

    9ec2792a743ebdf4575ee09a03c275ea.png

    7af312d1be2cfc1e59f15880bb7a7e7a.png

    5f207613e329ca76dc87c76d3ff77e64.png

    adf7aa3071c520b8a2063089f549261c.png

    下载提示

    1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

    2.该文档所得收入(下载+内容+预览三)归上传者、原创者。

    3.登录后可充值,立即自动返金币,充值渠道很便利

    第30卷 第12期 计 算 机 工 程 2004年6月

    Vol.30 № 12 Computer Engineering June 2004

    ·人工智能及识别技术 · 文章编号:1000—3428(2004)12 —0124—02 文献标识码:A 中图分类号: TP317.4

    一种获取图像区域最小外接矩形的算法及实现

    1,2 1 1

    吴晓光 ,王涤琼,盛 慧

    华东师范大学信息科学与技术学院,上海 ; 山西广播电视大学理工系,太原

    (1. 200062 2 . 030027)

    摘 要:给出了二值数字图像区域外接矩形的一种获取算法。对于图像方形点阵中的 近邻的情形,建立了标定区域边界的基本图 通过自动

    8 ,

    标定区域边界取得其像素点集,最后给出了获取图像区域最小外接矩形的实现方法。

    关键词:图像区域;区域标定;最小外接矩形

    An Algorithm and Implementaion for Obtaining Minimum Exterior

    Rectangle of Image Region

    1,2 1 1

    WU Xiaoguang ,WANG Diqiong ,SHENG hui

    (1.College of Information Science and Tchnology,East China Normal University,Shanghai 200062;

    2.Dept. of Science and Engineering,Shanxi Radio & TV University, Taiyuan 030027)

    【Abstract 】

    In this paper,a new kind of algorithm for obtaining minimum exterior rectangle of digital image region is presented. It sets up the basic graphs

    of image labeling for 8-site neighborhood digital images, based on basic graphs of image labeling, people can gain pixel pipointset of region boundary

    directly by automatic labeling. Finally it provides the implementaion of obtaining minimum exterior rectangle of digital image region.

    【Key words 】 ; ;

    Image region Region labeling Minimum exterior rectangle

    二值图像在图像分析中应用非常广泛,二值图像就是指 p p p p

    发表评论

    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

    用户名:

    验证码:

    c9f2bced460b0329ba0aadbbc3f0fc71.png

    匿名?

    发表评论

    展开全文
  • matlab计算目标最小外接矩形,主要利用minboundrect函数。
  • //printf("最小外接矩形的长为:%d,宽为:%d\n",chang,kuan); //画出Box cvPolyLine(dst, &pt, &npts, 1, 1, CV_RGB(255,0,0), 1); } cvNamedWindow("image5",1); cvShowImage("image5",dst); cvWaitKey(0);//注意...

    #include "cv.h"

    #include "highgui.h"

    #include

    #include

    //#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

    //并赋予一个对应的指针 *pt

    int 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

    {

    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);

    //画出Box

    cvPolyLine(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;

    }

    展开全文
  • 最小外接矩形

    千次阅读 2018-07-26 16:22:19
    2.求最小外接矩形 对于多边形 P 的一个外接矩形存在一条边与原多边形的边共线。 不仅不必去检测所有可能的方向, 而且只需要检测与多边形边数相等数量的矩形。      图示上述结论: 四条切线(红色), ...

    1.求凸包

    https://blog.csdn.net/sunflower_sara/article/details/81222376

     

    2.求最小外接矩形

    对于多边形 P 的一个外接矩形存在一条边与原多边形的边共线。

    不仅不必去检测所有可能的方向, 而且只需要检测与多边形边数相等数量的矩形。 
     

     

    图示上述结论: 四条切线(红色), 其中一条与多边形一条边重合, 确定了外接矩形(蓝色)。


    一个简单的算法是依次将每条边作为与矩形重合的边进行计算。 但是这种构造矩形的方法涉及到计算多边形每条边端点, 一个花费 O(n) 时间(因为有 n 条边)的计算。 整个算法将有二次时间复杂度。 

    一个更高效的算法已经发现。 利用旋转卡壳, 我们可以在常数时间内实时更新, 而不是重新计算端点。 
    实际上, 考虑一个凸多边形, 拥有两对和 x 和 y 方向上四个端点相切的切线。 四条线已经确定了一个多边形的外接矩形。 但是除非多边形有一条水平的或是垂直的边, 这个矩形的面积就不能算入最小面积中。 
    然而, 可以通过旋转线直到条件满足。 这个过程是下属算法的核心。 假设按照顺时针顺序输入一个凸多边形的n 个顶点。 

    1. 计算全部四个多边形的端点, 称之为 xminP, xmaxP, yminP, ymaxP
    2. 通过四个点构造 P 的四条切线。 他们确定了两个“卡壳”集合。
    3. 如果一条(或两条)线与一条边重合, 那么计算由四条线决定的矩形的面积, 并且保存为当前最小值。 否则将当前最小值定义为无穷大。
    4. 顺时针旋转线直到其中一条和多边形的一条边重合。
    5. 计算新矩形的面积, 并且和当前最小值比较。 如果小于当前最小值则更新, 并保存确定最小值的矩形信息。 
    6. 重复步骤4和步骤5, 直到线旋转过的角度大于90度。
    7. 输出外接矩形的最小面积。

    因为两对的“卡壳”确定了一个外接矩形, 这个算法考虑到了所有可能算出最小面积的矩形。 进一步, 除了初始值外, 算法的主循环只需要执行顶点总数多次。 因此算法是线性时间复杂度的。 

    参考:https://blog.csdn.net/bo_jwolf/article/details/11985565

    展开全文
  • 资源中包含了两个m文件。...minboundrect.m用于绘制运动目标的最小外接矩形框,可任意设置最小外接矩形框的角度。 本人做的是视频中运动车辆的检测,读者可自行更换检测算法以及参数调整以匹配不同的运动场景。
  • 提取二值化处理后图片中多个对象的最小外包矩形,以及外包矩形的集合属性信息。
  • 使用opencv画出图形的最小外接矩形与最小外接圆,首先求出图形的轮廓,设有滚动条可以选择最佳阈值,然后画出图形的最小外接圆与最小外接矩形算法的效果很好!
  • 最小外接矩形思路以及实现

    千次阅读 2019-02-25 01:08:29
    最小外接矩形 外接矩形计算 对一个凸多边形进行外接矩形计算,需要知道当前面的最大xy 和最小xy值,即可获得外接矩形 最小外接矩形计算 对凸多边形的每一条边都绘制一个外接矩形求最小面积。下图展示了计算流程 ...

    最小外接矩形

    外接矩形计算

    对一个凸多边形进行外接矩形计算,需要知道当前面的最大xy 和最小xy值,即可获得外接矩形

    在这里插入图片描述

    最小外接矩形计算

    对凸多边形的每一条边都绘制一个外接矩形求最小面积。下图展示了计算流程

    在这里插入图片描述


    计算流程

    1. 旋转基础算法实现

      • 旋转点基础
       /**
           * 旋转点
           *
           * @param point 被旋转的点
           * @param center 旋转中心
           * @param angle 角度
           * @return 旋转后坐标
           */
          public static Coordinate get(Coordinate point, Coordinate center, double angle) {
              double cos = Math.cos(angle);
              double sin = Math.sin(angle);
              double x = point.x;
              double y = point.y;
              double centerX = center.x;
              double centerY = center.y;
              return new Coordinate(centerX + cos * (x - centerX) - sin * (y - centerY),
                      centerY + sin * (x - centerX) + cos * (y - centerY));
          }
    1. 凸包算法实现

      Geometry hull = (new ConvexHull(geom)).getConvexHull();
    2. 获得结果

      public static Polygon get(Geometry geom, GeometryFactory gf) {
              Geometry hull = (new ConvexHull(geom)).getConvexHull();
              if (!(hull instanceof Polygon)) {
                  return null;
              }
              Polygon convexHull = (Polygon) hull;
              System.out.println(convexHull);
      
              // 直接使用中心值
              Coordinate c = geom.getCentroid().getCoordinate();
              System.out.println("==============旋转基点==============");
              System.out.println(new GeometryFactory().createPoint(c));
              System.out.println("==============旋转基点==============");
              Coordinate[] coords = convexHull.getExteriorRing().getCoordinates();
      
              double minArea = Double.MAX_VALUE;
              double minAngle = 0;
              Polygon ssr = null;
              Coordinate ci = coords[0];
              Coordinate cii;
              for (int i = 0; i < coords.length - 1; i++) {
                  cii = coords[i + 1];
                  double angle = Math.atan2(cii.y - ci.y, cii.x - ci.x);
                  Polygon rect = (Polygon) Rotation.get(convexHull, c, -1 * angle, gf).getEnvelope();
                  double area = rect.getArea();
      //            此处可以将 rotationPolygon 放到list中求最小值
      //            Polygon rotationPolygon = Rotation.get(rect, c, angle, gf);
      //            System.out.println(rotationPolygon);
                  if (area < minArea) {
                      minArea = area;
                      ssr = rect;
                      minAngle = angle;
                  }
                  ci = cii;
              }
      
              return Rotation.get(ssr, c, minAngle, gf);
          }
    3. 测试类

        @Test
          public void test() throws Exception{
              GeometryFactory gf = new GeometryFactory();
              String wkt = "POLYGON ((87623.0828822501 73753.4143904365,87620.1073981973 73739.213216548,87629.1690996309 73730.4220136646,87641.882531493 73727.3112803367,87643.0997749692 73714.8683470248,87662.0346734872 73725.0120426595,87669.0676357939 73735.1557382941,87655.9484561064 73735.9672339449,87676.9120937514 73747.4634223308,87651.8909778525 73740.8362078495,87659.4649372597 73755.4431295634,87644.4522677204 73748.680665807,87645.5342619215 73760.7178512935,87635.2553170117 73750.9799034842,87630.5215923822 73760.3121034681,87623.0828822501 73753.4143904365))";
              Polygon read = (Polygon) new WKTReader().read(wkt);
              Polygon polygon = MinimumBoundingRectangle.get(read, gf);
      
      //        System.out.println(polygon);
      //        System.out.println(polygon.getArea());
      
          }

    本文代码及可视化代码均放在 gitee 码云上 欢迎star & fork

    展开全文
  • 步骤:将一幅图像先转灰度,再canny边缘检测得到二值化边缘图像,再寻找轮廓,轮廓是由一系列点构成的,要想获得轮廓的最小外接矩形,首先需要得到轮廓的近似多边形,用道格拉斯-普克抽稀(DP)算法,道格拉斯-普克...
  • 使用python opencv返回点集cnt的最小外接矩形,所用函数为 cv2.minAreaRect(cnt) ,cnt是点集数组或向量(里面存放的是点的坐标),并且这个点集不定个数。举例说明:画一个任意四边形(任意多边形都可以)的最小外接...
  • 10、最小外接矩形及长宽的求法liuqingjie2@http://www.doczj.com/doc/96e75a41a8956bec0975e327.html#include "cv.h"#include "highgui.h"#include#include#include "otsu.h"int main(int argc,char** argv){...
  • java 求最小外接矩形

    千次阅读 2020-01-15 14:18:03
    https://zhuanlan.zhihu.com/p/97855964 https://blog.csdn.net/staHuri/article/details/87910716 https://github.com/huifer/planar_algorithm import ... import lombok.B...
  • 二值图像分析—轮廓最小外接矩形

    千次阅读 2019-10-30 17:11:27
    OpenCV中最小外接矩形 说明 brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set. 查找包含输入二维点集的最小区域的旋转矩形。 该函数计算并返回指定点集的最小区域边界矩形...
  • 最小外接矩形问题是在给出一个多边形(或一群点),求出面积最小且外接多边形的矩形的问题。这个问题看起来并不难,但是具体实现并不简单。除了调用现有的公开库之外,这里给出一种简单且易理解的方法。   算法的...
  • 最小外接矩形求解MBR

    2020-04-06 10:57:35
    参考网页上的历程,完善了软件功能,实现了最小外接矩形求解。在QT上测试通过,输入随意的不等数量的点,运行算法,获取最小矩形的边的所有参数。
  • opencv中最小外接矩形2 的算法

    千次阅读 2015-04-14 16:54:09
    Cvbox2D 本文来自CSDN博客,转载请标明... ...之前用到opencv最小外接矩形去表示一个类椭圆形的高度,特此记录备查。 对给定的 2D 点集,寻找最小面积的包围矩形,使用函数: CvBox2D cvMinAreaRect2( const 
  • * @brief :获取由凸包传来的点集,计算最小外接矩形,采用旋转卡壳算法 * @param[in] :凸包传来的点集,逆时针顺序的点集 * @param[out] : * @return :返回最小外接矩形的四个点集。顺时针方向 */ CUBECOM_...
  • 凸四边形的最小外接矩形

    千次阅读 2019-02-26 09:09:58
    已知凸四边形的四条边及对角线长度,求具有最小面积的外接矩形的面积。 思路: 1 最初上来,没好的想法只能遍历,绕某个点转360度,求解析解; 2 发现不对,再遍历四个点; 3 绕重心旋转,遍历求最优近似解; 4...
  • 求解最小外接矩形

    千次阅读 2014-06-14 10:58:37
     了解到最小矩形所具有的这两个性质后,我们就能够很容易的想到一种算法,枚举凸包上哪条边与矩形的边重合,再找出在这条直线投影的正负方向上最远的和到直线距离最远的三点,从而确定和计算出矩形的面积,最后选取...
  • 前段时间毕设卡在求一系列点的最小外接矩形, 卡了好久在导师的帮助下终于解决了. 来分享下思路 说明 本篇所有的坐标系都是建立在右手坐标系下的情况. 虽然为了符合常识认知, 我会把这个坐标系做一个旋转, 但本质上它...
  • 最小外接矩形(ROI)

    千次阅读 2017-01-03 17:37:22
    通过学习差找轮廓(findContours)函数和绘制轮廓(drawContours)编写的符合限制周长范围的最小外接矩形,并输出外接矩形角度、长宽、坐标点、中心等信息。
  • 不规则凸形最小外接矩形算法

    千次阅读 2012-03-10 14:13:15
    建立一个18X5的二维数组,每行第一个单元格依序10度间隔斜率值,如tg(10/pi)、tg(20/pi)...,第二、三、四、五单元格存储不规则凸形点斜率垂直和平行的点,每间隔10度计算一...计算完所有点,就可找到最小外接矩形

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,902
精华内容 1,160
关键字:

最小外接矩形算法

友情链接: dt.zip