1、介绍
图像分割是将图像划分为具有相似属性的区域的过程。图像分割具有多种应用,例如医学图像分割、图像压缩,并用作对象检测和光流等更高级别视觉任务中的预处理步骤。该包是用 Julia 编写的图像分割算法的集合。
2、安装
Pkg.add("ImageSegmentation")
3、例子
图像分割不是一个数学上明确定义的问题:例如,输入图像的唯一无损表示是每个像素都是其自己的片段。然而,这并不符合我们自己的直觉观念,即某些像素自然地分组在一起。因此,许多算法需要参数,通常是某种阈值
,表示您愿意容忍单个片段内像素之间一定量的变化。
让我们看一个有关如何使用此包中的分段算法的示例。我们将尝试将下图中的马、地面和天空分开。我们将探索两种算法 - 种子区域生长
和 felzenszwalb
。种子区域生长需要我们事先知道片段的数量以及每个片段上的一些点,而 felzenszwalb 使用更抽象的参数来控制片段内相似度。
3.1 加载原始图像
horse.jpg
是本地图像,可以去这里下载
using Images, ImageView
img = load("images/horse.jpg")
imshow(img)
3.2 分割图像
最简单的方式是将鼠标悬停
在要分割的不同对象上,然后读出每个对象内一个或多个点的坐标。我们将把种子点存储为元组向量,并与记录的种子点一起(seed position, label)
使用。
seeds = [(CartesianIndex(126,81),1), (CartesianIndex(93,255),2), (CartesianIndex(213,97),3)]
segments = seed