MATLAB最小矩形法边界法,最小外接矩形法.PPT

本文详细介绍了图像分析中的关键步骤,包括尺寸测量(面积、周长、长度和宽度)、形状分析(矩形度、圆形度、不变矩)以及纹理分析。最小外接矩形法用于确定物体主轴方向,矩形度和圆形度用于区分不同形状,不变矩则在物体旋转、缩放时保持稳定。此外,还探讨了微分链码、傅立叶描述子和中轴变换作为形状描述子的重要作用。
摘要由CSDN通过智能技术生成

最小外接矩形法

3 纹理分析 3.3 基于纹理分割 将图像分割成一些具有某种一致性的区域是图像分析的重要手段,一致性包括亮度、颜色或纹理等衡量标准。在机器视觉系统中,通常图像可以根据亮度标准进行分割,但在复杂的情况下,如自然景物,这种方法不能达到令人满意的分割效果。因为这类图像不具有均匀的亮度分布,而具有共同的纹理特征。 3 纹理分析 基于纹理分割的基本步骤 对于512*512大小的图像,分成若干n*n大小的子图像; 对每个子图像计算其共生矩阵; 再根据其共生矩阵计算其主要纹理特征,如熵、对比度、能量等; 具有相同或近似纹理特征的区域归为一类。 要点总结 要点总结 1、物体尺寸(面积、周长、长度、宽度)的计算方法; 2、反映物体形状的矩形度、圆形度以及不变矩; 3、物体形状的微分链码、傅立叶描述子和中轴变换; 4、什么是纹理?统计纹理的共生矩阵法; 数字图像处理 第十八章 图像测量和形状分析 CH18 物体测量和形状分析 一、尺寸测量 二、形状分析 三、纹理分析 四、曲线和表面拟合 要点总结 1 尺寸测量 目的 当分割出物体后,进一步测量物体的尺寸和几何特征,以进行图像识别和分类。 主要物体的尺寸属性 面积 周长 长度和宽度 物体的综合光密度 1 尺寸测量 1.1 面积和周长 面积和边界关系:边界像素是全部还是部分包含在物体中?或物体的实际边界是由边界像素的中心还是外边缘构成? 像素计数法:统计边界内部以及边界上像素的数目即面积。周长是外边界的长度。缺点:包含了边界像素。 多边形测量法:将物体边界定义为以各边界像素中心为顶点的多边形。 1 尺寸测量 Ne走偶步的数目,No走奇步的数目; Na物体包含的像素数目(包括边界上的像素); Nb边界上的像素数目; 为什么要多减去一个像素? 因为总假定物体是凸的,包含了4个角。 1 尺寸测量 多边形遍历法 1 尺寸测量 相应周长等于多边形各边长之和。 1 尺寸测量 1.2 长度和宽度 简单物体的长度和宽度测量 对于水平和垂直物体,通过计算物体像素的最大/最小行/列号测量。 最小外接矩形法(MER) 以等间隔使物体在90°范围内旋转,每次旋转后用一个水平的外接矩形拟合其边界。记录下最小面积外接矩形的参数,旋转角度即物体主轴方向。 1 尺寸测量 矩(moments)计算方法 参见下一小节。 1.3 综合和平均光密度 综合光密度等价于面积乘以物体内部的平均灰度级。 2 形状分析 通过一类物体的形状将它从其他物体中分离出来。 2.1 矩形度 矩形拟合因子 Ao是物体的面积, AR是物体外接矩形的面积 R反应物体对其外接矩形的填充程度 对矩形物体R取最大值1,对纤细物体R取较小值,对圆形物体R取值为π/4。 2 形状分析 长宽比 等于外接矩形MER的宽与长的比值 这个特征可以将纤细物体与方形或圆形物体区分开来。 2 形状分析 2.2 圆形度 圆形度指标在物体为圆形形状时取最小值。 周长平方与面积比 对于圆形物体C取最小值4 π ,而越复杂物体C取值越大。 边界能量 普通物体的曲率可以通过链码求出 2 形状分析 单位边界长度的平均能量 2 形状分析 利用物体内点到最近边界点的平均距离 xi是物体内第i个点与其最近边界点的距离 对于圆和规则多边形,等价于周长平方与面积比。 2 形状分析 2.3 不变矩 矩的定义 对于二元有界函数f(x,y),其(j+k)阶矩是 显然对于二值函数,零阶矩等于物体的面积 中心矩是以质心为原点进行计算 2 形状分析 规格化中心矩 中心矩具有位置无关性 主轴 使二阶中心矩 变得最小的旋转角θ ,称为物体的主轴。 2 形状分析 不变矩 相对于主轴计算并用面积规范化的中心矩,在物体放大、平移、旋转时保持不变。 这些矩的幅值及其组合反映了物体的形状并可以用于模式识别。 2 形状分析 2.4 形状描述子 微分链码 微分链码反映了边界的曲率,峰值处显示了凹凸性 通过傅立叶展开的三次谐波与四次谐波幅值比区分三角形和四边形。 2 形状分析 傅立叶描述子 对周期函数进行离散傅立叶变换,保留频域中低频部分的少数级项称为傅立叶描述子。 2 形状分析 傅立叶描述子的缺点时对于位置、大小、方向的依赖性,因此需要做进一步处理。 首先:将大小规格化。将F(u)所有系数被F(0)除后作为描述子; 其次:物体旋转θ角,根据傅立叶性质,频域乘以常数ejθ; 最后:傅立叶描述子域起点相关,根据傅立叶性质空域中起点移动x0,频域乘以系数 2 形状分析 中轴变换 寻找物体中满足以下条件的点及其参数: 以该点为圆心,存在一个包含在物体内的圆盘且与物体的边界相切与两点。该点参数就是圆盘的半径。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab中可以使用以下代码实现最小外接矩形: 1. 首先读入点集数据,可以使用load函数加载txt文件中的数据: data = load('data.txt'); 2. 使用convhull函数计算点集的凸包: K = convhull(data(:,1), data(:,2)); 3. 计算凸包上所有边的斜率: slope = diff(data(K,2))./diff(data(K,1)); 4. 找出斜率最小和最大的两条边,即为最小外接矩形的两个对角线: [min_slope, min_idx] = min(slope); [max_slope, max_idx] = max(slope); 5. 计算最小外接矩形的旋转角度: angle = atan2(max_slope - min_slope, 1 + max_slope * min_slope); 6. 计算最小外接矩形的中心点坐标: center = mean(data(K([min_idx, max_idx]),:)); 7. 计算最小外接矩形的长和宽: width = norm(data(K(min_idx),:) - data(K(max_idx),:)); height = max(abs(data(K(:,1))*sin(angle) - data(K(:,2))*cos(angle))) * 2; 8. 绘制最小外接矩形: rectangle('Position', [center(1)-width/2, center(2)-height/2, width, height], 'EdgeColor', 'r'); 完整代码如下: data = load('data.txt'); K = convhull(data(:,1), data(:,2)); slope = diff(data(K,2))./diff(data(K,1)); [min_slope, min_idx] = min(slope); [max_slope, max_idx] = max(slope); angle = atan2(max_slope - min_slope, 1 + max_slope * min_slope); center = mean(data(K([min_idx, max_idx]),:)); width = norm(data(K(min_idx),:) - data(K(max_idx),:)); height = max(abs(data(K(:,1))*sin(angle) - data(K(:,2))*cos(angle))) * 2; rectangle('Position', [center(1)-width/2, center(2)-height/2, width, height], 'EdgeColor', 'r');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值