image-processing - 来自运行长度编码的像素链

标签 image-processing blob pixel chain run-length-encoding

这个问题我想了很久

我正在做成像。到目前为止,我已经对我的图像进行了二值化处理,这意味着从灰度图像中,低于特定值的每个像素都会被丢弃。这只给我原始图像中的一些区域,这些区域周围有很多“零像素”。

接下来,我将游程长度编码为“ Blob ”。运行是一种数据压缩方法。例如,假设您已经对一个正方形进行了二值化,那么您将只有几次运行来描述整个图像。 游程由 x、y 坐标和长度定义。

重新创建图像时,对于每次运行,转到 x,y 坐标并在 x 轴上添加像素作为运行长度。

现在我必须运行并从中创建一个链来描述该区域的轮廓。 我不知道该怎么做。

我有一堆 x,y,length 运行,我必须在边缘“导航”以形成 chain .通常在成像过程中,这个过程是用原始图像完成的,但我不能在这里再使用原始图像,所以我必须用运行来计算它。

我知道这看起来像是一大堆文字,但我不知道如何更好地提出这个问题。

任何关于相同实现的提示或指示都会很棒。

编辑

感谢 unwind,我将链接几张图片:

alt text
(来源:tudelft.nl)

在这个例子中,他们将图像 B 处理成轮廓 C(我称之为链)。但是我想从 D 生成轮廓,行程长度

最佳答案

乍一看,我没有看到一个实用的算法。 穷人的解决方案是从长度编码的图像扩展原始图像。 因此,如果您的行看起来像这样:

A 3B 10A C 8D
C 4D 3A 6C 9A

其中字符返回实际像素值(例如 A = 0,B = 127,...)。 您可以将像素值写入二维数组(或您选择的其他数据结构)。它看起来像这样:

ABBBAAAAAAAAAACDDDDDDDD
CDDDDAAACCCCCCAAAAAAAAA

之后生成你的链,删除数组并保留链信息。 当然这很昂贵,所以也许您可以在对原始图片进行长度编码之前执行此操作。

关于image-processing - 来自运行长度编码的像素链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250293/

相关文章:

c - 在opencv中获取LAB图像的像素值

python - 如何使用python曲折排序并连接每行的值

c++ - 在没有 OpenCV 的情况下从 C++ 中的 RGB 数组拆分 channel

react-native - React Native 加速将图像 uri 转换为 base64

Java 以一定长度(以像素为单位)分割字符串

javascript - Web 应用程序上的图像编辑

Video.js - 播放使用 createObjectURL 创建的 blob(本地文件@客户端)

MYSQL如何通过LONGBLOB进行选择

javascript - 如何关闭 JavaScript 中的 CSS 像素比,以便我可以在手机上创建高清游戏?

opengl-es - 如何在iPhone 6 Plus上完美绘制Pixel?