距离变换 Distance Transformation

以下为该学习地址的学习笔记:Distance transformation in image - Python OpenCV - GeeksforGeeks

 其他学习资料:Morphology - Distance Transform

简介

距离变换是一种用于计算图像中每个像素与最近的非零像素之间距离的技术。它通常用于图像分割和物体识别任务,因为它可以帮助识别图像中物体的边界。(如下图片来源于Chamani, H., Rabbani, A., Russell, K. P., Zydney, A. L., Gomez, E. D., Hattrick-Simpers, J., & Werber, J. R. (2023). Rapid reconstruction of 3-D membrane pore structure using a single 2-D Micrograph. arXiv preprint arXiv:2301.10601.)

1. 距离变换在OpenCV中的实现

OpenCV 中的距离变换函数 cv2.distanceTransform() 接收二值图像并返回两个数组:距离图像和标签图像(the distance image and the label image)。距离图像包含每个像素与最近的非零像素的距离值,标签图像包含最近的非零像素的标签。

#简单表示一下
dist_transform, labels = cv2.distanceTransform(binary_image, distance_type, mask_size)
  • binary_image: 输入的二值图像,非零像素通常表示前景对象。
  • distance_type: 距离类型,可以使用常量如cv2.DIST_L1(曼哈顿距离)或cv2.DIST_L2(欧几里得距离)。
  • mask_size: 掩码大小,确定用于计算距离的掩码的大小,值越大计算越精确但速度越慢。

距离类型

  • cv2.DIST_L1: 曼哈顿距离the Manhattan distance,即只计算水平和垂直方向的距离。
  • cv2.DIST_L2: 欧几里得距离the Euclidean distance,即计算实际的几何距离,包含所有方向。

掩码大小

掩码大小(mask size)决定了计算距离时使用的邻域范围,常用的大小有3、5等。较大的掩码可以提供更精确的距离值,但计算开销也会增加。

距离变换的结果

距离变换的结果是一个与原始图像大小相同的距离图像,每个像素值表示该像素到最近前景像素的距离。通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值