最小外接矩形法

合集下载

识别多边形中心点的方法

识别多边形中心点的方法

识别多边形中心点的方法全文共四篇示例,供读者参考第一篇示例:多边形是一个平面图形,由若干个线段组成,每个线段都相邻接且不相交,而且首尾相连,形成一个封闭图形。

多边形的中心点是指多边形的质心,也是多边形的重心。

识别多边形中心点是在计算机视觉和图像处理中一个重要的问题,可以帮助我们进行图像分析、目标定位等相关任务。

本文将介绍几种常用的方法来识别多边形的中心点。

方法一:几何中心法在数学几何中,多边形中心点通常是指多边形的“几何中心”,也称几何质心。

几何中心法是最简单直观的方法,通过计算多边形的顶点坐标的平均值来得到多边形的中心点。

具体步骤如下:1. 对多边形的所有顶点坐标进行求和,并除以顶点的个数,得到一个平均坐标作为中心点的坐标。

2. 将得到的中心点坐标绘制在多边形的内部,即可得到多边形的中心点。

这种方法简单易行,适用于正规的凸多边形。

但对于不规则的凸多边形或凹多边形,可能会得到与我们期望不同的结果。

重心法也是一种常用的计算多边形中心点的方法。

重心是一个物理学和工程学概念,是指一个图形的“平均质量点”。

在数学上,一个多边形的重心定义为其所有小面积的中点的平均。

计算多边形的重心的方法是将多边形分解成多个三角形,计算每个三角形的重心,最后取所有三角形重心的平均值作为多边形的重心。

具体步骤如下:1. 将多边形分解成若干个三角形,可以采用三角剖分算法进行分解。

2. 计算每个三角形的重心,即三个顶点坐标的平均值。

通过重心法计算多边形中心点,可以更准确地反映多边形的形状和结构。

但对于复杂的多边形,计算过程可能比较复杂。

方法三:最小外接矩形法最小外接矩形法是另一种计算多边形中心点的方法。

这种方法不需要对多边形进行三角剖分,而是根据多边形的外包矩形来确定多边形的中心点。

计算多边形的最小外接矩形的步骤如下:1. 找到多边形的外包矩形,即包含多边形的最小矩阵。

最小外接矩形法适用于不规则多边形的中心点计算,并且计算效率高,较为简单。

利用重心原理的图像目标最小外接矩形快速算法

利用重心原理的图像目标最小外接矩形快速算法
t h e r o t a t i n g c e n t e r o f t h e h o iz r o n t a l a x i s a n d t he v e r t i c a l a x i s we r e o b t a i n e d. Th e i n i t i a l e n c l o s i n g r e c t a n g l e wa s d e t e r mi n e d b y me a ns o f t h e h o iz r o n t a l a x i s .I n t h e a c u t e a n g l e r e g i o n b e t we e n t h e h o iz r o n t a l a x i s a n d t h e v e r t i c a l a x i s t h e e n c l o s i n g r e c t a ng l e wa s r o t a t e d u n t i l t h e e n c l o s i n g r e c t a n g l e o f
平 主轴 和垂 直主 轴构成 的锐 角区域 内, 旋 转 外接矩 形 , 找到 面积最 小的 外接 矩 形 , 作 为寻优 目标 。该
算 法利 用重心 原理确 定 的主轴初 始位 置非 常有效 , 缩 小 了搜 索 区间 , 减 少 了整 个寻优 过程 中的旋 转 次
数, 并且仪 旋 转 用直 线方 程表 示 的主 轴 , 大 大减 少 了运算 量 , 有 效提 高 了运算 速度 , 可 以快 速 找到 目
第4 2卷 第 5期
Vo 1 . 4 2 N O. 5
红 外 与 激 光 工 程
I n ra f r e d a n d La s e r E n  ̄ i n e e r i n

最小外接矩形原理

最小外接矩形原理

最小外接矩形原理最小外接矩形原理是一种经典的计算几何方法,它用于解决问题如何用最小的矩形来包含给定的点集。

这个方法在图形识别、图像处理、计算机视觉、机器人控制等领域得到广泛应用。

1. 整体思路最小外接矩形算法的核心思想是寻找包围点集的最小矩形,这个矩形的特点是其边缘经过点集上的某些点。

仿佛在给一个矩形铁丝网,然后用手将它塚在点集上使得这个矩形的边正好经过点集上某些点,这样得到的矩形就是最小外接矩形(Minimum Bounding Rectangle,MBR)。

2. 算法分类一般而言,最小外接矩形算法有两种种类:顺时针旋转和平面扫描。

顺时针旋转法:顺时针旋转法的基本思路是将点集沿逆时针方向旋转,然后找到对应点集的最小外接矩形。

这个算法可以使用旋转角度的技术来实现,并在选出最小包围矩形时实时更新候选矩形。

平面扫描法:平面扫描算法通常基于一个简单和直观的想法,即按特定方向将点集排序,并查找距离相同的两个点,在这样的基础上,可以根据其距离和方向构建最小包围矩形。

3. 算法实现无论采用什么样的算法,最小外接矩形的实现主要分为以下几个步骤:· 先找到点集中的最大和最小x、y坐标,并计算出矩形的初始宽度和高度。

· 将初始矩形的中心放在点集的中心,并旋转最小旋转角度,更新最优矩形(距离=宽度×高度)。

· 从该点向其他点扫描,并计算得到其他可能的包围矩形,最终找到最小的包围矩形。

相比平面扫描法,旋转法相对简单明了,我们这里就以旋转法为例进行实践。

C++代码实现如下:```c++ #include<iostream> #include<cstdio>#include<cmath> #include<algorithm> using namespace std; #define maxn 100005 const double eps=1e-10; // 浮点数的eps struct complex { double x,y; complex(double x=0,double y=0):x(x),y(y) {} };inline complex operator +(complex a,complexb){return complex(a.x+b.x,a.y+b.y);} inline complexoperator -(complex a,complex b){return complex(a.x-b.x,a.y-b.y);} inline complex operator *(complexa,complex b){return complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);}int n,top; double d[maxn],ans_w,ans_h; complexp[maxn],st[maxn],h[maxn],w,var;inline double dist(complex a,complex b) {returnsqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y));} //计算距离inline bool cmp(const complex &a,const complex&b) { return (a.x==b.x)?(a.y<b.y):(a.x<b.x); } inline double angle(complex a) {returnatan2(a.y,a.x);} inline double ang(complexa,complex b,complex c) {return fabs(angle(a-b)-angle(c-b));}inline void init() { top=1;sort(p+1,p+1+n,cmp); for(int i=1;i<=n;++i){ while(top>1 && (h[top]-h[top-1])*(p[i]-h[top-1])<=0) --top;h[++top]=p[i]; } w=h[top]-h[1]; for(inti=2;i<top;++i)if(ang(h[1],h[i],h[top])<ang(h[1],w,h[top]))w=h[i]-h[1]; for(int i=1;i<=top;++i)d[i]=dist(h[i],h[i%top+1]); }inline void solve() { int j=2;var.x=ans_w; var.y=ans_h; for(inti=1;i<=top;++i){ while((w*(h[i]+st[j])-w*st[j-1]).y >=0) j=j+1>top?1:j+1; // 更新答案double new_w=dist(h[i],st[j]), new_h=fabs((w*(h[i]-st[j])).y); if(new_w*var.y-var.x*new_h<ans_w*ans_h*eps){ ans_w=new_w; ans_h=new_h;var.x=ans_w;var.y=ans_h; } } }int main() { int T; scanf("%d",&T);while(T--) { scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%lf%lf",&p[i].x,&p[i].y); if(n==1){ printf("0.00\n"); continue; } init();ans_w=hypot(w.x,w.y);ans_h=0; // 初始答案solve(); swap(ans_w,ans_h);printf("%.2lf\n",ans_w*ans_h); if(T)printf("\n"); } return 0; } ```4. 总结最小外接矩形算法是一种实用的算法,在很多计算机应用中有着广泛的应用。

最小外接矩形 主轴法

最小外接矩形 主轴法

最小外接矩形主轴法一、最小外接矩形与主轴法的定义最小外接矩形(Minimum Bounding Rectangle,MBR)是一种用于描述二维空间中点集或几何形状边界的最小矩形的方法。

主轴法(Major Axis Theorem)是一种基于几何原理,通过找到最小外接矩形的中心点和主轴来确定矩形的方法。

二、主轴法原理及其算法实现主轴法的基本原理是找到一个方向,使得在该方向上最小外接矩形的边界点到中心的距离最小。

这个方向就是最小外接矩形的主轴方向。

在二维空间中,最小外接矩形有水平和垂直两个主轴方向。

算法实现上,首先需要计算所有点的质心,然后找到围绕质心旋转的点集分布的旋转主轴。

通过旋转主轴和质心可以确定最小外接矩形的两个主轴方向。

最后,根据主轴方向和质心坐标可以确定最小外接矩形的四个角点坐标。

三、主轴法在最小外接矩形计算中的应用主轴法在最小外接矩形计算中有广泛的应用。

例如,在地图分析、数据可视化、计算机图形学、模式识别等领域中,经常需要计算一组点或形状的最小外接矩形。

通过使用主轴法,可以快速准确地找到这些矩形,进而进行进一步的分析和处理。

四、最小外接矩形主轴法的优缺点优点:1.算法简单易实现,计算速度快。

2.可以快速准确地找到最小外接矩形。

3.可以处理任意形状和方向的点集或几何形状。

缺点:1.对于一些特殊形状的点集或几何形状,可能会出现主轴方向的判断误差,影响计算精度。

2.对于一些边界模糊或不规则的点集或几何形状,最小外接矩形的计算结果可能会不准确。

3.在高维空间中,最小外接矩形的计算变得更加复杂,需要更高级的算法和技术。

五、主轴法在计算机图形学中的其他应用除了最小外接矩形计算,主轴法在计算机图形学中还有其他应用。

例如,在碰撞检测中,可以使用主轴法快速判断两个物体是否相交;在动画制作中,可以使用主轴法确定物体旋转的中心点和旋转方向;在几何变换中,可以使用主轴法确定旋转、平移等变换操作的中心点和方向。

halcon-smallest_rectangle2返回最小外接任意角度矩形数据

halcon-smallest_rectangle2返回最小外接任意角度矩形数据

halcon-smallest_rectangle2返回最⼩外接任意⾓度矩形数据最⼩外接矩形:最⼩外接矩形长宽的⼀半称为长宽半轴,长轴⽅向称为区域的⽅向存在任意⾓度的称为rect2,⽔平竖直的矩形称为rect1在HDevelop中read_image (Image, 'D:/bb/tu/5.jpg')rgb1_to_gray(Image,Image1)threshold (Image1, Region,[75] , [90])smallest_rectangle2 (Region, Row, Column, Phi, Length1, Length2)*返回最⼩外接任意⾓度矩形数据*参数1:输⼊区域*参数2:最⼩外接矩形的中⼼点的⾏坐标-y坐标*参数3:最⼩外接矩形的中⼼点的列坐标-x坐标*参数4:最⼩外接矩形的长边与图像坐标系x轴的夹⾓,,范围为-1.5707963265到+1.5707963265弧度(-90°到+90°)* x轴算起逆时针时⾓度为正,顺时针是⾓度为负*参数5:最⼩外接矩形的短边(宽度 width)*参数6:最⼩外接矩形的长边(长度 height)get_image_size (Image1, Width, Height)dev_open_window(10,10,Width, Height,'black',WindowHandle)dev_display(Region)dev_open_window(10,10,Width, Height,'black',WindowHandle1)gen_rectangle2(Rectangle,Row,Column,Phi,Length1,Length2)*⽣成任意⾓度矩形区域*参数1:Rectangle输出任意⾓度矩形区域*参数2:Row 矩形中⼼点⾏坐标*参数3:Column矩形中⼼点列坐标*参数4:Phi⾓度*参数5:Length1矩形宽度的⼀半*参数6:Length2矩形长度的⼀半dev_display(Rectangle)在QtCreator中HObject ho_Image, ho_Image1, ho_Region, ho_Rectangle;HTuple hv_Row, hv_Column, hv_Phi, hv_Length1;HTuple hv_Length2, hv_Width, hv_Height, hv_WindowHandle;HTuple hv_WindowHandle1;ReadImage(&ho_Image, "D:/bb/tu/5.jpg");Rgb1ToGray(ho_Image, &ho_Image1);Threshold(ho_Image1, &ho_Region, 75, 90);SmallestRectangle2(ho_Region, &hv_Row, &hv_Column, &hv_Phi, &hv_Length1, &hv_Length2);//返回最⼩外接任意⾓度矩形数据//参数1:输⼊区域//参数2:最⼩外接矩形的中⼼点的⾏坐标-y坐标//参数3:最⼩外接矩形的中⼼点的列坐标-x坐标//参数4:最⼩外接矩形的长边与图像坐标系x轴的夹⾓,,范围为-1.5707963265到+1.5707963265弧度(-90°到+90°)// x轴算起逆时针时⾓度为正,顺时针是⾓度为负//参数5:最⼩外接矩形的短边(宽度 width)//参数6:最⼩外接矩形的长边(长度 height)GetImageSize(ho_Image1, &hv_Width, &hv_Height);SetWindowAttr("background_color","black");OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);HDevWindowStack::Push(hv_WindowHandle);if (HDevWindowStack::IsOpen())DispObj(ho_Region, HDevWindowStack::GetActive());SetWindowAttr("background_color","black");OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1);HDevWindowStack::Push(hv_WindowHandle1);GenRectangle2(&ho_Rectangle, hv_Row, hv_Column, hv_Phi, hv_Length1, hv_Length2);//⽣成任意⾓度矩形区域//参数1:Rectangle输出任意⾓度矩形区域//参数2:Row 矩形中⼼点⾏坐标//参数3:Column矩形中⼼点列坐标//参数4:Phi⾓度//参数5:Length1矩形宽度的⼀半//参数6:Length2矩形长度的⼀半if (HDevWindowStack::IsOpen())DispObj(ho_Rectangle, HDevWindowStack::GetActive());。

opencvsharp 不规则四边形转矩形-概述说明以及解释

opencvsharp 不规则四边形转矩形-概述说明以及解释

opencvsharp 不规则四边形转矩形-概述说明以及解释1.引言1.1 概述概述部分的内容可以包括以下内容:概述部分是文章的引言,用于介绍本文所要讨论的课题以及其背景和意义。

本文主要探讨OpencvSharp在处理不规则四边形转矩形中的应用。

不规则四边形是指具有四个边长不相等、四个内角不相等的四边形。

在计算机视觉领域,将不规则四边形转换为矩形是一个常见的问题。

不规则四边形转矩形的目的在于简化几何形状,使得进一步的计算和分析更加方便和准确。

通过将不规则四边形转换为矩形,可以利用矩形的性质进行更加高效的图像处理和模式识别。

OpencvSharp是一个基于开源计算机视觉库OpenCV的C封装。

它提供了丰富的图像处理和分析功能,包括形状检测、边缘检测、轮廓提取等。

在不规则四边形转矩形的应用中,OpencvSharp提供了一些方便的函数和算法,可以快速实现不规则四边形转矩形的过程。

本文将介绍不规则四边形的定义和特点,以及OpencvSharp在处理不规则四边形转矩形中的应用。

同时,还将详细描述实现不规则四边形转矩形的算法和步骤。

最后,将总结不规则四边形转矩形的方法和技巧,并对OpencvSharp在这一应用中的效果进行评价。

同时,展望不规则四边形转矩形在计算机视觉领域的发展前景。

通过本文的阅读,读者将能够了解不规则四边形转矩形的基本概念、OpencvSharp的使用方法以及不规则四边形转矩形在计算机视觉领域的应用前景。

1.2文章结构文章结构部分是用来介绍整篇文章的组织结构和各个部分的内容。

在本篇文章中,按照给定的目录,文章结构可以如下描述:本篇文章主要包含三个部分:引言、正文和结论。

1. 引言部分包括概述、文章结构、目的和总结四个小节。

概述部分将简要介绍不规则四边形转矩形的问题以及其在计算机视觉领域中的应用。

文章结构部分则是当前所在的部分,主要介绍整篇文章的组织结构。

目的部分将具体阐述本篇文章的目标和意义。

棱长总和求解技巧

棱长总和求解技巧

棱长总和求解技巧棱长总和求解技巧在几何学中,我们经常会遇到求解多边形的棱长总和的问题。

这个问题在实际应用中非常常见,比如计算房屋的周长、计算电线的长度等等。

在本文中,我将介绍一些求解棱长总和的技巧和方法。

1. 多边形的本质在求解多边形的棱长总和之前,我们需要明确多边形的本质。

多边形是由一系列相连的线段构成的封闭图形。

因此,多边形的棱长总和就是多边形的周长。

2. 多边形的分类多边形可以分为简单多边形和复杂多边形。

简单多边形是指没有自交的多边形,即多边形的任意两条边不相交;复杂多边形则允许存在自交现象。

根据多边形的分类,我们可以选择不同的方法来求解棱长总和。

3. 简单多边形的棱长总和求解对于简单多边形,我们可以使用边界框定理来求解棱长总和。

边界框定理指出,对于任意一个简单多边形,它的周长等于它的最小外接矩形的周长。

首先,我们需要找到简单多边形的最小外接矩形。

最小外接矩形是一个与多边形紧密相连的最小矩形。

然后,我们可以通过计算最小外接矩形的边长之和来得到简单多边形的棱长总和。

4. 复杂多边形的棱长总和求解对于复杂多边形,我们可以使用三角剖分法来求解棱长总和。

三角剖分是将一个复杂多边形划分为一系列三角形的过程。

首先,我们需要将复杂多边形进行三角剖分。

有很多方法可以进行三角剖分,比如三角形切割法、Delaunay剖分等。

通过三角剖分,我们可以将复杂多边形划分为多个简单多边形。

然后,我们可以分别求解每个简单多边形的棱长总和,再将它们相加得到复杂多边形的棱长总和。

5. 求解实际问题的棱长总和在实际应用中,我们可能会遇到一些特殊的问题,比如不规则多边形的棱长总和求解。

对于这类问题,我们可以使用近似方法来求解。

近似方法是通过将复杂问题转化为简单问题来求解。

比如,我们可以将不规则多边形分解为若干个简单多边形,再分别求解它们的棱长总和,最后将它们相加得到不规则多边形的棱长总和。

6. 使用计算工具求解棱长总和对于复杂的多边形,手工计算棱长总和可能会非常繁琐和困难。

最小外接矩形法

最小外接矩形法


通过傅立叶展开的三次谐波与四次谐波幅值 比区分三角形和四边形。
2 形状分析

傅立叶描述子
B(p)=x(p)+jy(p) p 起点 起点
极坐标边界函数
复数边界函数

对周期函数进行离散傅立叶变换,保留频域 中低频部分的少数级项称为傅立叶描述子。
2 形状分析

傅立叶描述子的缺点时对于位置、大小、方 向的依赖性,因此需要做进一步处理。 首先:将大小规格化。将F(u)所有系数被F(0) 除后作为描述子;

参见下一小节。

1.3 综合和平均光密度

综合光密度等价于面积乘以物体内部的平均灰度级。
2 形状分析

通过一类物体的形状将它从其他物体中分离出来。 矩形拟合因子
R


2.1 矩形度

AO
AR
Ao是物体的面积, AR是物体外接矩形的面积
R反应物体对其外接矩形的填充程度
对矩形物体R取最大值1,对纤细物体R取较小值, 对圆形物体R取值为π/4。

1 尺寸测量

1.1 面积和周长



面积和边界关系:边界像素是全部还是部分包含在 物体中?或物体的实际边界是由边界像素的中心还 是外边缘构成? 像素计数法:统计边界内部以及边界上像素的数目 即面积。周长是外边界的长度。缺点:包含了边界 像素。 多边形测量法:将物体边界定义为以各边界像素中 心为顶点的多边形。

M 10 M 01 x ,y M 00 M 00
2 形状分析

规格化中心矩
jk jk jk r , r 00 2

中心矩具有位置无关性 主轴 使二阶中心矩 11 变得最小的旋转角θ ,称为 物体的主轴。

基于最小外接矩形的稻米粒型检测方法

基于最小外接矩形的稻米粒型检测方法

主轴方 向上 的长度和与之垂直方 向上的宽度 , 这样 的外接矩 形是物体最小 的外接矩形 。 基 于 ME R算法的尺寸检测技术在黄 花梨尺寸 检测上 已 得 到应 用 , 但是 在 稻 米 粒 型 检 测 方 面 未 见 报 道 。 笔 者 拟 对 ME R算法 检测 稻米粒 型展 开研 究 , 为进一 步研 究 开发基 于 图像处理技术的稻米外观品质检测系统打下基础 。
o c e e w spooe ,i w i a uao ehdb s gtem nm m ec s grc nl ( R)aon h c e e f ekr l a rpsd n hc acl lt nm to yui ii u nl i et g ME i r n h c i n h on a e ru dter ekr l i n

S e o dee tt e r to o t e r is O beus d t t c h a i fo h rg an .
KEYW ORDS:r e k r e ;r t i e l ai c n o;mi i m n l sn e t n l n mu e c o i g r ca ge;i g r c s ig ma e p o e sn

中 图 分 类 号 :P 9 . 1 T 3 14
文 献标 识 码 : A
文 章 编 号 :0 3— 2 2 20 0 00 0 10 60 ( 06)9— 0 7— 2
A udy on I pe ton o c e ne to wih i i um c o i e t St ns c i fRi e K r lRa i t M n m En l sng R c ange M eho l t d
粒型是衡量稻米外 观品质的重要 指标之一 , 是指 稻米粒 长与粒宽 的比值 … 。粒型在描述稻米 的品种 、 种子清选 和优 质稻米分级上都具有 重要 的意 义。国际 水稻研 究所将 稻米 按粒型划分为 三种 : 长粒 、 中粒 和短 粒 ; 长粒 要求 粒 型 大 于 30 中粒要求粒 型为 2 1~3 0 短 粒要 求粒 型小 于 2 1 。 ., . ., . 。 而我 国《 优质 稻谷》国家标 准 ( B T 18 1 19 ) 仅 对 G / 7 9 - 9 9 中, 优质籼稻谷有 明确 的要求 , 即粒型大于 28 。 .…

轮廓常见特征值

轮廓常见特征值

轮廓常见特征值1. 引言轮廓是指物体边界在图像中的外形。

在计算机视觉中,轮廓是一种重要的特征,可用于分割、识别和跟踪图像中的物体。

轮廓常见特征值是指用来描述轮廓形状和结构的数值指标。

本文将从不同的角度探讨常见的轮廓特征值,并介绍其在计算机视觉中的应用。

2. 常见轮廓特征值2.1 周长周长是指轮廓的封闭曲线的长度。

在计算中,可以通过对轮廓上所有像素点的距离进行累加来计算周长。

周长通常用来衡量物体的大小,对于物体的分割和测量非常有用。

2.2 面积面积是指轮廓所围成的区域的大小。

计算轮廓的面积可以采用像素计数法或多边形面积计算法。

轮廓面积在图像分割、形状匹配等任务中起着重要的作用。

2.3 矩矩是一种表示轮廓形状和结构的数值特征。

矩可以分为几何矩和中心矩两种。

几何矩描述了轮廓的位置、大小和朝向,而中心矩描述了轮廓的平均灰度和形状。

矩在形状匹配、图像识别和目标跟踪中被广泛应用。

2.4 最大外接矩形和最小外接矩形最大外接矩形是能够完全包围轮廓的最小面积矩形。

最小外接矩形是能够刚好包围轮廓的最小面积矩形。

最大外接矩形可以用来估计物体的朝向和形状,最小外接矩形可以用来计算轮廓的紧凑性和几何特征。

2.5 凸包凸包是能够完全包围轮廓的最小凸多边形。

凸包可以用来检测和描述轮廓的几何形状。

对于不规则形状的轮廓,凸包可以提供有效的形状变量。

2.6 离心率离心率是描述椭圆轮廓形状的一个指标。

离心率接近于0时,表示轮廓接近于一个圆形;离心率接近于1时,表示轮廓接近于一个线段。

离心率在图像分割和形状匹配中经常被使用。

3. 轮廓特征值的应用3.1 目标检测和识别轮廓特征值可以用来描述和比较不同目标的形状和结构。

通过提取目标的轮廓特征值,可以实现目标的检测和识别。

例如,可以通过比较目标的矩特征来判断是否为同一类别的物体。

3.2 图像分割轮廓特征值可以用来分割图像中的不同物体和区域。

通过计算轮廓的面积、周长和形状特征,可以实现图像的自动分割。

IEnvelope用法

IEnvelope用法

IEnvelope是指地物的外接矩形,用来表示地物图形的大体位置和形状,一般可用于检索地物,判断地物间的拓扑关系,可以使得检索、判断的速度加快,因为有了IEnvelope,可以首先判断该外接矩形是否在检索范围内,而判断一个外接矩形是比较简单的。

Envelope也称包络线,是一个矩形区域,是每个几何形体的最小外接矩形。

每个Geometry都拥有一个Envelope,包括Envelope自身。

IEnv是包络线对象的主要接口,定义了XMax、XMin、YMax、YMin、Height和Width等属性,用于获取或设置一个存在的包络线对象的空间坐标。

IEnvelope接口也提供了一些方法,如Expand、offset、CenterAt、PutCoords等。

Expand方法用于按比例缩放包络线的范围,产生一个新的包络线对象;offset是一个偏移方法,通过一个给定的(X,y)移动包络线;CenterAt方法则通过改变包络线的中心点来移动包络线;PutCoords方法饿公国指定的坐标点来构造包络线。

接口的属性和方法:IEnvelope接口的长宽属性Height和Width属性(读写,可以通过该属性获取或设置该边框的长和宽)IEnvelope接口的4个顶点属性UpperLeft、UpperRight、LowerLeft和LowerRight (读写,返回IPoint类型的四个顶点,比直接获得最值坐标更加方便严谨)IEnvelope接口的最值坐标属性XMax、XMin、YMax和YMin(读写,可以通过该属性获取或设置该边框的四个顶点的坐标)IEnvelope接口的CenterAt(pPoint)(方法,将这个矩形的边框移动到参数pPoint 的位置,但是其他属性不变,如它的Width和Height)IEnvelope接口的Union (inEnvelope ) (方法,将参数输入的几何边框和调用该方法的几何边框求并集,并将结果赋值给第一个边框,即调用此方法的object)IEnvelope接口的Intersect(inEnvelope ) (方法,返回与输入参数相交的区域的几何边框,并将结果赋值给第一个边框,即调用此方法的object)IEnvelope接口的PutCoords (XMin, YMin,XMax,YMax) (方法,将新建的一个边框的4个极坐标设置为输入的参数)IEnvelope接口的QueryCoords (XMin, YMin,XMax,YMax)(方法,将已有的一个边框的4个极坐标输出到参数当中以备后用)IEnvelope接口的Expand (dx, dy, asRatio) (方法,按照输入的dx与dy参数来放大或者缩小当前的边框,用与对ArcMap窗体的中心放大或缩小,或者点击屏幕获得点击点的坐标,并将中心点设置成点击点,并进行一定比例的放大或者缩小)IEnvelope接口的Offset (X, Y) (方法,将已有的一个边框的按照输入参数的大小来进行水平竖直的移动)限定符和类型方法和说明void centerAt(IPoint center)移动中心到指定位置,宽高不变。

IEnvelope用法

IEnvelope用法

IEnvelope是指地物的外接矩形,用来表示地物图形的大体位置和形状,一般可用于检索地物,判断地物间的拓扑关系,可以使得检索、判断的速度加快,因为有了IEnvelope,可以首先判断该外接矩形是否在检索范围内,而判断一个外接矩形是比较简单的。

Envelope也称包络线,是一个矩形区域,是每个几何形体的最小外接矩形。

每个Geometry都拥有一个Envelope,包括Envelope自身。

IEnv是包络线对象的主要接口,定义了XMax、XMin、YMax、YMin、Height和Width等属性,用于获取或设置一个存在的包络线对象的空间坐标。

IEnvelope接口也提供了一些方法,如Expand、offset、CenterAt、PutCoords等。

Expand方法用于按比例缩放包络线的范围,产生一个新的包络线对象;offset是一个偏移方法,通过一个给定的(X,y)移动包络线;CenterAt方法则通过改变包络线的中心点来移动包络线;PutCoords方法饿公国指定的坐标点来构造包络线。

接口的属性和方法:IEnvelope接口的长宽属性Height和Width属性(读写,可以通过该属性获取或设置该边框的长和宽)IEnvelope接口的4个顶点属性UpperLeft、UpperRight、LowerLeft和LowerRight (读写,返回IPoint类型的四个顶点,比直接获得最值坐标更加方便严谨)IEnvelope接口的最值坐标属性XMax、XMin、YMax和YMin(读写,可以通过该属性获取或设置该边框的四个顶点的坐标)IEnvelope接口的CenterAt(pPoint)(方法,将这个矩形的边框移动到参数pPoint 的位置,但是其他属性不变,如它的Width和Height)IEnvelope接口的Union(inEnvelope)(方法,将参数输入的几何边框和调用该方法的几何边框求并集,并将结果赋值给第一个边框,即调用此方法的object)IEnvelope接口的Intersect(inEnvelope)(方法,返回与输入参数相交的区域的几何边框,并将结果赋值给第一个边框,即调用此方法的object)IEnvelope接口的PutCoords(XMin,YMin,XMax,YMax)(方法,将新建的一个边框的4个极坐标设置为输入的参数)IEnvelope接口的QueryCoords(XMin,YMin,XMax,YMax)(方法,将已有的一个边框的4个极坐标输出到参数当中以备后用)IEnvelope接口的Expand(dx,dy,asRatio)(方法,按照输入的dx与dy参数来放大或者缩小当前的边框,用与对ArcMap窗体的中心放大或缩小,或者点击屏幕获得点击点的坐标,并将中心点设置成点击点,并进行一定比例的放大或者缩小)IEnvelope接口的Offset(X,Y)(方法,将已有的一个边框的按照输入参数的大小来进行水平竖直的移动)。

基于最小外接矩形的遥感影像建筑物轮廓优化方法

基于最小外接矩形的遥感影像建筑物轮廓优化方法

第35卷第1期2021年1月北京测绘Beijing Surveying and MappingVol.35No.1January2021引文格式:周再文,王建,朱恰,等•基于最小外接矩形的遥感影像建筑物轮廓优化方法[口北京测绘,2021,35(1):1-6. DOI:10.19580/ki.1007-3000.2021.01.001基于最小外接矩形的遥感影像建筑物轮廓优化方法周再文王建朱恰刘星雨马紫雯高贤君(长江大学地球科学学院,湖北武汉430100)[摘要]深度学习提取高分辨率遥感影像中的建筑物信息容易受到物体周围的阴影、植被等噪声干扰而使结果存在边界锯齿化、建筑物整体不规整等问题。

本文提出了利用符合建筑物边界轮廓的最小外接矩形最大限度地拟合建筑物轮廓的思路。

首先利用深度学习和建筑物验证处理得到的建筑物信息,对建筑物边界利用垂距法进行多边形的拟合;然后对多边形的最小外接矩形进行筛选,选取最合适的最小外接矩形边线段作为新的边界轮廓,以提高提取的精度。

对多幅遥感影像进行了实验,结果表明,本文所提出的方法提高了深度学习提取的建筑物边界轮廓准确性,能更逼近真实建筑物的边界轮廓。

[关键词]深度学习;高分辨率遥感影像;最小外接矩形;垂距法;建筑物边界轮廓[中图分类号]P237[文献标识码]A0引言建筑物作为地理信息研究的比较重要的地理要素之一,是现代城市的主要组成,也是用来衡量城市发展的比较重要的指标。

建筑物信息的提取对城市规划、地理信息系统的实际应用、数字城市应用等方面具有重要的意义和作用E。

随着遥感技术的快速发展,各种遥感影像的空间分辨率也越来越高。

由于高分辨率遥感影像具有地物纹理信息丰富、成像光谱波段多、重访时间短等特点,其已经成为地物信息获取的重要的数据来源但是高分遥感影像在提高地物光谱特征,突出地物结构、纹理信息的同时,会带来严重的异物同谱的问题。

实际工作中建筑物周围的各种其他无关地物的干扰也会导致建筑物信息最终的提取结果与原始影像中的建筑物的形状和边界轮廓不一致。

所有节点的外接多边形-概述说明以及解释

所有节点的外接多边形-概述说明以及解释

所有节点的外接多边形-概述说明以及解释1.引言1.1 概述概述:外接多边形是指一个包围所有节点的最小凸多边形,它通过所有给定点的外部位置而不贴边或贴点。

在图论、几何学和计算几何中,外接多边形是一个重要的概念,它有着广泛的应用。

本文将介绍外接多边形的定义和构建方法,探讨外接多边形在不同领域的应用,并对未来可能的发展方向进行展望。

通过深入研究外接多边形的相关概念和应用,希望能够为读者提供更深入的理解和启发。

1.2 文章结构文章结构部分主要包括以下几个方面:1. 引言:介绍文章的背景和主题,提出研究的问题和目的,概述文章的结构和内容。

2. 正文:分为以下几个部分进行阐述:2.1 什么是外接多边形:对外接多边形的定义进行解释,介绍其特点和属性。

2.2 构建外接多边形的方法:详细介绍构建外接多边形的不同方法和算法,包括凸壳算法、最小外接矩形算法等。

2.3 应用领域:介绍外接多边形在实际应用中的重要性和应用场景,如图像处理、几何计算等。

3. 结论:对文章进行总结,总结外接多边形的重要性和应用价值,展望其在未来的发展和应用前景,最后进行结束语。

1.3 目的:本文的主要目的是介绍所有节点的外接多边形的概念、构建方法以及应用领域。

通过深入探讨外接多边形的原理和实践,读者可以更好地理解这一概念,并在实际应用中加以运用。

同时,本文旨在为读者提供一个全面的视角,帮助他们更好地理解和利用外接多边形这一概念,从而推动其在实际工程和科研领域的应用和发展。

2.正文2.1 什么是外接多边形外接多边形是指在平面上给定一组点集合时,找到包含所有点的最小凸多边形。

这个最小凸多边形即为外接多边形。

外接多边形通常是由点集合中的点作为顶点来构建的,使得这个多边形的边缘能够完全包围所有的点,且同时使得这个多边形的面积最小。

外接多边形在几何学和计算机科学领域有着广泛的应用。

在几何学中,外接多边形被用来描述一组点的几何特征,比如点集合的凸包。

在计算机科学领域,外接多边形被用来解决许多实际问题,比如图像处理中的轮廓提取、计算机视觉中的目标检测和跟踪等。

IDL中获取多边形的最小外接矩形

IDL中获取多边形的最小外接矩形
IDL
原理很简单,就是通过循环旋转多边形,获取外接矩形,找到其中面积最小的即可。
效果图如下:
代码如下:
;+
; :Deቤተ መጻሕፍቲ ባይዱcription:
; IDL中获取多边形的最小外接矩形
;
;
;-
PROtest_Minimum_Enclosing_Rectangle
COMPILE_OPTidl2
;输入多边形
x = [0,1,3,9,7,4,2,1]
;旋转后外接矩形面积
tmp_rect_area = (xrange[1]-xrange[0])*(yrange[1]-yrange[0])
;如果面积小于之前的,则记录下来
IFtmp_rect_areaLTmin_rect_areaTHENBEGIN
min_xrange = xrange
min_yrange = yrange
min_rect_area = tmp_rect_area
min_i = i
ENDIF
ENDFOR
;旋转后的最小外接矩形,需要再旋转回去
min_x = [min_xrange[0],min_xrange[1],min_xrange[1],min_xrange[0]]
min_y = [min_yrange[1],min_yrange[1],min_yrange[0],min_yrange[0]]
MER =IDLanROI(min_x, min_y)
MER.Rotate, [0,0,1], -min_i*degree_per, center=center
MER.GetProperty, data=mer_data ;最小外接矩形的4个角点

matlab求最小外接斜矩形minboundrect方法

matlab求最小外接斜矩形minboundrect方法

matlab求最⼩外接斜矩形minboundrect⽅法最近在做课程⼤作业时看到opencv函数cv2.minAreaRect(),但是想⽤matlab实现,于是查到了John D’Errico写的matlab实现求最⼩外接斜矩形函数。

(代码贴在最后,仅供学习使⽤)[rectx,recty,area,perimeter] = minboundrect(c,r,‘a’)其中a表⽰以⾯积最⼩、如果是p的话则是以边长最⼩这⾥有个问题,⽤minboundrect函数求得的四个点顺序是什么?于是做了两张图验证了⼀下放上结果:可以得到minboundrect函数得到的结果(rectx,recty)是从最上边的点开始,按照顺时针⽅向索引。

minboundrect代码function[rectx,recty,area,perimeter]=minboundrect(x,y,metric)% minboundrect: Compute the minimal bounding rectangle of points in the plane% usage:[rectx,recty,area,perimeter]=minboundrect(x,y,metric)%% arguments:(input)% x,y - vectors of points, describing points in the plane as%(x,y) pairs. x and y must be the same lengths.%% metric -(OPTIONAL)- single letter character flag which% denotes the use of minimal area or perimeter as the% metric to be minimized. metric may be either 'a' or 'p',% capitalization is ignored. Any other contraction of'area'% or 'perimeter' is also accepted.%%DEFAULT:'a'('area')%% arguments:(output)% rectx,recty -5x1 vectors of points that define the minimal% bounding rectangle.%% area -(scalar) area of the minimal rect itself.%% perimeter -(scalar) perimeter of the minimal rect as found%%% Note: For those individuals who would prefer the rect with minimum% perimeter or area, careful testing convinces me that the minimum area% rect was generally also the minimum perimeter rect on most problems%(with one class of exceptions). This same testing appeared to verify my% assumption that the minimum area rect must always contain at least% one edge of the convex hull. The exception I refer to above is for% problems when the convex hull is composed of only a few points,% most likely exactly 3. Here one may see differences between the% most likely exactly 3. Here one may see differences between the % two metrics. My thanks to Roger Stafford for pointing out this%class of counter-examples.%% Thanks are also due to Roger for pointing out a proof that the% bounding rect must always contain an edge of the convex hull,in % both the minimal perimeter and area cases.%%% Example usage:% x =rand(50000,1);% y =rand(50000,1);% tic,[rx,ry,area]=minboundrect(x,y);toc%% Elapsed time is 0.105754 seconds.%%[rx,ry]% ans =%0.99994-4.2515e-06%0.999980.99999% 2.6441e-051%-5.1673e-06 2.7356e-05%0.99994-4.2515e-06%% area% area =%0.99994%%% See also: minboundcircle, minboundtri, minboundsphere%%% Author: John D'Errico%E-mail: woodchips@% Release:3.0% Release date:3/7/07%default for metricif(nargin<3)||isempty(metric)metric ='a';elseif ~ischar(metric)error 'metric must be a character flag if it is supplied.'else% check for'a' or 'p'metric =lower(metric(:)');ind =strmatch(metric,{'area','perimeter'});if isempty(ind)error 'metric does not match either ''area'' or ''perimeter'''end% just keep the first letter.metric =metric(1);end% preprocess datax=x(:);y=y(:);% not many error checks to worry aboutn =length(x);if n~=length(y)error 'x and y must be the same sizes'end% start out with the convex hull of the points to% reduce the problem dramatically. Note that any% reduce the problem dramatically. Note that any% points in the interior of the convex hull are% never needed, so we drop them.if n>3edges =convhull(x,y);%edges =convhull(x,y,{'Qt'});%'Pp' will silence the warnings% exclude those points inside the hull as not relevant% also sorts the points into their convex hull as a% closed polygonx =x(edges);y =y(edges);% probably fewer points now, unless the points are fully convex nedges =length(x)-1;elseif n>1% n must be 2 or 3nedges = n;x(end+1)=x(1);y(end+1)=y(1);else% n must be 0 or 1nedges = n;end% now we must find the bounding rectangle of those% that remain.% special case small numbers of points. If we trip any%of these cases, then we are done, so return.switch nedgescase0% empty begets emptyrectx =[];recty =[];area =[];perimeter =[];returncase1%with one point, the rect is simple.rectx =repmat(x,1,5);recty =repmat(y,1,5);area =0;perimeter =0;returncase2% only two points. also simple.rectx =x([12211]);recty =y([12211]);area =0;perimeter =2*sqrt(diff(x).^2+diff(y).^2);returnend%3 or more points.% will need a 2x2 rotation matrix through an angle thetaRmat = @(theta)[cos(theta)sin(theta);-sin(theta)cos(theta)];%get the angle of each edge of the hull polygon.ind =1:(length(x)-1);edgeangles =atan2(y(ind+1)-y(ind),x(ind+1)-x(ind));% move the angle into the first quadrant.edgeangles =unique(mod(edgeangles,pi/2));% now just check each edge of the hull% now just check each edge of the hullnang =length(edgeangles);area = inf;perimeter = inf;met = inf;xy =[x,y];for i =1:nang% rotate the data through -thetarot =Rmat(-edgeangles(i));xyr = xy*rot;xymin =min(xyr,[],1);xymax =max(xyr,[],1);% The area is simple,as is the perimeterA_i =prod(xymax - xymin);P_i =2*sum(xymax-xymin);if metric=='a'M_i = A_i;elseM_i = P_i;end%new metric value for the current interval. Is it better?if M_i<met% keep this onemet = M_i;area = A_i;perimeter = P_i;rect =[xymin;[xymax(1),xymin(2)];xymax;[xymin(1),xymax(2)];xymin]; rect = rect*rot';rectx =rect(:,1);recty =rect(:,2);endend%get the final rect% all doneend % mainline end代码仅供学习。

凸包计算边界框

凸包计算边界框

凸包计算边界框凸包是计算机图形学中的一个重要概念,它可以用来描述一组点所形成的最小凸多边形。

而利用凸包计算边界框,可以方便地得到一组点的最小外接矩形,从而很好地描述了这组点的整体形状和大小。

一、什么是凸包凸包是指包含给定点集合的最小凸多边形或凸包围多边形。

凸多边形是指多边形内任意两点连线上的所有点都在多边形内部,而凸包则是包含了给定点集合的最小凸多边形。

二、凸包的计算方法计算凸包有多种方法,其中一种常用且简单的方法是使用“Graham扫描法”。

该方法的基本思想是:首先找到给定点集合中的一个基点(通常是最下方的点或最左方的点),然后按照与基点的极角大小对其他点进行排序。

接下来,按照排序后的次序依次遍历每个点,并判断其与前两个点的转向关系。

如果转向关系为右转,则将前一个点从凸包中删除,直到所有的点都被遍历完毕。

最后得到的就是凸包的顶点集合。

三、利用凸包计算边界框边界框是指能够完全包围给定点集合的最小矩形。

而利用凸包计算边界框的方法相对简单直观。

首先,我们先计算出凸包的顶点集合。

然后,我们可以找到凸包中的最左、最右、最上、最下的点,分别记为leftmost、rightmost、topmost、bottommost。

最后,我们可以根据这四个点的坐标来构建边界框,即边界框的左上角坐标为(leftmost.x, topmost.y),右下角坐标为(rightmost.x, bottommost.y)。

四、凸包计算边界框的应用利用凸包计算边界框的方法在计算机图形学和计算机视觉中有着广泛的应用。

例如,在图像处理中,可以利用该方法来获取图像中目标物体的外接矩形,从而进行目标检测和识别。

另外,在地理信息系统中,该方法也可以用来计算地理区域的边界框,从而方便地进行地理数据的分析和可视化。

五、总结通过凸包计算边界框的方法,我们可以简单而直观地得到一组点的最小外接矩形。

该方法的基本思想是通过计算凸包的顶点,然后根据这些顶点的坐标来构建边界框。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


通过傅立叶展开的三次谐波与四次谐波幅值 比区分三角形和四边形。
2 形状分析

傅立叶描述子
B(p)=x(p)+jy(p) p 起点 起点
极坐标边界函数
复数边界函数

对周期函数进行离散傅立叶变换,保留频域 中低频部分的少数级项称为傅立叶描述子。
2 形状分析

傅立叶描述子的缺点时对于位置、大小、方 向的依赖性,因此需要做进一步处理。 首先:将大小规格化。将F(u)所有系数被F(0) 除后作为描述子;

1 尺寸测量

1.1 面积和周长



面积和边界关系:边界像素是全部还是部分包含在 物体中?或物体的实际边界是由边界像素的中心还 是外边缘构成? 像素计数法:统计边界内部以及边界上像素的数目 即面积。周长是外边界的长度。缺点:包含了边界 像素。 多边形测量法:将物体边界定义为以各边界像素中 心为顶点的多边形。

边界能量

2 形状分析
K(p)=1/r(p) p Start Point r(p)

单位边界长度的平均能量
2 1 P E K p dp P 0 对于固定面积值,圆具有最小边界能量
1 2 Eo 2 R P
2
2 形状分析

利用物体内点到最近边界点的平均距离

共生矩阵P是N*N的,其中N为灰度级的划分 数目
3 纹理分析

设有以下图像,求其共生矩阵。
3 纹理分析

基于共生矩阵的纹理特征
能量E Pij
i 1 j 1 i, j N N 2
最大概率M max Pi , j 熵H Pi , j log Pi , j

1.2 长度和宽度

简单物体的长度和宽度测量

对于水平和垂直物体,通过计算物体像素的最大/最 小行/列号测量。

最小外接矩形法(MER)

以等间隔使物体在90°范围内旋转,每次旋转后用一 个水平的外接矩形拟合其边界。记录下最小面积外 接矩形的参数,旋转角度即物体主轴方向。
1 尺寸测量

矩(moments)计算方法

可以通过形态学(腐蚀)方法实现。 中轴变换可以用于物体的重建。
3 纹理分析
3.1

定义
纹理是对图像的像素灰度级在空间上的分布 描述,反映物体的质地:如粗糙度、光滑度、 颗粒度、随机性和规范性等。
当图像中出现大量的相同或相似的图像模式 (基本图像元素),纹理分析是主要研究手 段。另一种分析方法为分形。 描述一个区域纹理特征有三种方法:统计分 析方法、结构分析方法和频谱分析方法。M 00 Nhomakorabea
M jk




x i y j f x, y dxdy f x, y dxdy
j k
j , k 0,1, 2,




中心矩是以质心为原点进行计算
jk

x x y y f x, y dxdy
2 形状分析

长宽比
A W

L
等于外接矩形MER的宽与长的比值 这个特征可以将纤细物体与方形或圆形物体 区分开来。
2 形状分析

2.2 圆形度

圆形度指标在物体为圆形形状时取最小值。
周长平方与面积比
2 P C
A

对于圆形物体C取最小值4 π ,而越复杂物体 C取值越大。 普通物体的曲率可以通过链码求出
1 尺寸测量

多边形遍历法
x2 y2 x1 y1 dA x0 y0
y1 y2 0
x1
x2
1 1 1 dA x2 y1 x1 y1 x2 y2 x2 x1 y2 y1 2 2 2 1 1 Nb dA x1 y2 x2 y1 A xi yi 1 xi 1 yi 2 2 i 1

不变矩
相对于主轴计算并用面积规范化的中心矩, 在物体放大、平移、旋转时保持不变。
这些矩的幅值及其组合反映了物体的形状并 可以用于模式识别。
1 20 02
2 2 20 02 411 2

3 30 312 321 03
2、反映物体形状的矩形度、圆形度以及不变矩;


3、物体形状的微分链码、傅立叶描述子和中轴变 换;
4、什么是纹理?统计纹理的共生矩阵法;



其次:物体旋转θ角,根据傅立叶性质,频域 乘以常数ejθ;
最后:傅立叶描述子域起点相关,根据傅立 叶性质空域中起点移动x0,频域乘以系数
x0 exp j 2 N

2 形状分析

中轴变换

寻找物体中满足以下条件的点及其参数: 以该点为圆心,存在一个包含在物体内的圆 盘且与物体的边界相切与两点。该点参数就 是圆盘的半径。


3 纹理分析
3 纹理分析
3 纹理分析

统计分析方法

有自相关函数、纹理边缘、结构元素、灰 度的空间共生概率、灰度行程和自回归模 型。统计方法将纹理描述为光滑、粗糙、 粒状等等。
结构分析方法



研究基元及其空间关系。 基元一般定义为具有某种属性而彼此相连 的单元的集合,属性包括灰度、连通区域 的形状、局部一致性等。 空间关系包括基元的相邻性、在一定角度 范围内的最近距离等等。

参见下一小节。

1.3 综合和平均光密度

综合光密度等价于面积乘以物体内部的平均灰度级。
2 形状分析

通过一类物体的形状将它从其他物体中分离出来。 矩形拟合因子
R


2.1 矩形度

AO
AR
Ao是物体的面积, AR是物体外接矩形的面积
R反应物体对其外接矩形的填充程度
对矩形物体R取最大值1,对纤细物体R取较小值, 对圆形物体R取值为π/4。
1 尺寸测量
1 xdy ydx Ñ 2 1 Nb 1 Nb A xi yi1 yi yi xi 1 xi xi yi 1 yi xi 1 2 i 1 2 i 1 A

相应周长等于多边形各边长之和。
1 尺寸测量

M 10 M 01 x ,y M 00 M 00
2 形状分析

规格化中心矩
jk jk jk r , r 00 2

中心矩具有位置无关性 主轴 使二阶中心矩 11 变得最小的旋转角θ ,称为 物体的主轴。
211 tan 2 20 02
2 形状分析
2
2
4 30 12 21 03
2
2
......
2 形状分析

2.4 形状描述子

微分链码

微分链码反映了边界的曲率,峰值处显示了 b 凹凸性
c e f a 0 g d 3 4 5 6 2 0 6 4 2 a b c d e 边界链码 f g
2
1 0 7 a b c d e f g 微分链码
数字图像处理
第十八章 图像测量和形状分析
CH18 物体测量和形状分析
一、尺寸测量 二、形状分析 三、纹理分析 四、曲线和表面拟合 要点总结

1 尺寸测量

目的

当分割出物体后,进一步测量物体的尺寸和 几何特征,以进行图像识别和分类。
面积 周长 长度和宽度 物体的综合光密度

主要物体的尺寸属性
i 1 j 1 N N
惯性或对比度I Pi , j i j
i 1 j 1
N
N
2
3 纹理分析

3.3 基于纹理分割

将图像分割成一些具有某种一致性的区域是图像分 析的重要手段,一致性包括亮度、颜色或纹理等衡 量标准。在机器视觉系统中,通常图像可以根据亮 度标准进行分割,但在复杂的情况下,如自然景物, 这种方法不能达到令人满意的分割效果。因为这类 图像不具有均匀的亮度分布,而具有共同的纹理特 征。
1 N d xi N i 1 g A d
2

N3 xi i 1
N 2

xi是物体内第i个点与其最近边界点的距离 对于圆和规则多边形,等价于周长平方与面 积比。
2 形状分析

2.3 不变矩

矩的定义

对于二元有界函数f(x,y),其(j+k)阶矩是 显然对于二值函数,零阶矩等于物体的面积

频谱分析方法

3 纹理分析

3.2 统计纹理特征

共生矩阵

在图像中定义一个方向(水平、垂直或其他) 和一个距离(一个像素,两个像素等)。那 么物体共生矩阵P的第(i,j)个元素值等于灰 度级对i和j,在物体内沿此方向和此距离同时 出现的次数,除以M,其中M是对P有贡献的 像素对的总数。
3 纹理分析
周长:p N e 2 N o Nb 面积:A N a 2 1
1 尺寸测量
3 4 5 6 边界方向码 2 1 0 7

Ne走偶步的数目,No走奇步的数目; Na物体包含的像素数目(包括边界上的像 素); Nb边界上的像素数目; 为什么要多减去一个像素? 因为总假定物体是凸的,包含了4个角。
3 纹理分析

根据基元间的空间联系,纹理可以分为弱纹 理或强纹理。进一步细分,可以根据基元的 空间共生频率来划分,也可以根据单位面积 内的边缘数来区别。基元也可以定义为灰度 行程。 是根据傅立叶频谱,根据峰值所占的能量比 例将图像分类。包括计算峰值处的面积、峰 值处的相位、峰值与原点的距离平方、两个 峰值间的相角差等手段。
相关文档
最新文档