图片中像素选择的数据结构



是否有方便的数据结构用于在图片中存储像素选择?

通过像素选择,是指您使用的选择工具,例如图像编辑软件(矩形,拉索,魔术棒等(获得的选择工具。可以有孔,在一般情况下,选择比图片本身小得多。

目的是能够保存/加载选择,仅显示所选像素是一个单独的视图(边界框大小(,使用特定算法中的选择(通常是需要分割的算法(等。尽可能的空间是因为目标是将其中的许多存储在DB中。

我到目前为止找到的解决方案:

  • 布尔数组(图片的大小/8(
  • (uint16,uint16(=>不效率的列表,如果选择中的许多像素
  • 列表数组:每行的像素列表列表

布尔数组将为光栅加上w x h位加上额外的会计(例如ROI限制(。这与边界框的区域大致成正比。

每个选定像素的像素坐标列表将占32位(2x16位(。与布尔数组相比,这很大,除非选择非常空心。

另一个有用的表示形式是运行长度编码,它按行计数偶然的像素。此表示每次运行大约需要16位。换句话说,当运行的平均长度为n像素时,每个像素的16/n位。这适用于大型填充形状,但对于孤立的像素而言很差。

最后,您还可以考虑将形状的轮廓存储为像素列表(每个像素32位(或自由链(每个像素只有3位(,这可以是相对于该链全额枚举。

您可以看到,选择是不安的,因为不同表示形式的效率很大程度上取决于选择的形状。另一个重要方面是可以将给定表示形式用于选择的目标处理。

最新更新