怎么对图像进行距离变换?

 时间:2026-02-12 16:47:13

1、先给出一幅图片:

i=Rasterize@

 Graphics[{Green, Disk[{0, 0}, {2, 3}], Red, Disk[{-2, 3}, {1, 2/3}]},

   PlotRange -> 5, Background -> Black]

怎么对图像进行距离变换?

2、对i进行距离变换:

a = DistanceTransform[i]

这里,把图像的黑色部分默认为背景了。

前景全部变成了白色区域,背景保持为黑色。

怎么对图像进行距离变换?

3、j = Rasterize@

  Graphics[{Black, Disk[{0, 0}, {2, 3}], Red, 

    Disk[{-2, 3}, {1, 2/3}]}, PlotRange -> 5, Background -> Green]

此时,进行距离变换,会有什么效果呢?

怎么对图像进行距离变换?

4、b = DistanceTransform[j]

仍旧把黑色默认为背景,而别的颜色的区域都视为前景。

怎么对图像进行距离变换?

5、让图像里面没有黑色像素:

h = Rasterize@

  Graphics[{Blue, Disk[{0, 0}, {2, 3}], Red, Disk[{-2, 3}, {1, 2/3}]},

    PlotRange -> 5, Background -> Green]

怎么对图像进行距离变换?

6、此时,Mathematica好像不能识别谁是背景,因为距离变换的结果,是空白的。

c = DistanceTransform[h]

怎么对图像进行距离变换?

7、此时,每一个像素值,都是1。

ImageData[c][[101 ;; 136, 101 ;; 136]] // MatrixForm

怎么对图像进行距离变换?

1、找出图像a里面的像素的最大值,就可以确定,前景里面,到背景最远的点的位置:

data = ImageData[a];

{u, v} = Dimensions[data];

MaximalBy[

 Flatten[Table[{m, n, data[[m, n]]}, {m, u}, {n, v}], 1], Last]

怎么对图像进行距离变换?

2、对图像进行标准化处理,也就是按比例缩小a各像素的值,使最大值不超过1。

ImageAdjust[a]

怎么对图像进行距离变换?

怎么对图像进行距离变换?

3、图像配准还可以这样:

a/Max@Flatten@ImageData[a]

怎么对图像进行距离变换?

1、给出下图。

怎么对图像进行距离变换?

2、距离变换。

只保留黑色部分,其余颜色变成了白色。

怎么对图像进行距离变换?

3、图像配准。

怎么对图像进行距离变换?

  • EXCEL用IMARGUMENT计算复数的弧度辐角的角度值
  • 如何使用MATLAB绘制不同类型的二维图形
  • 直线与圆的位置关系在PPT课件中的演示方法
  • 微软Excel技巧:[2]双击XLS/XLSX文件无法打开
  • MATLAB如何生成指定格式的字符串
  • 热门搜索
    旅游相册 临沧旅游 罗浮山旅游攻略 甘孜州旅游 旅游网站论文 厦门旅游婚纱照 湖南旅游局 大理古城旅游 旅游英文 衡水湖旅游