问题标签 [binary-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
852 浏览

python - Python:快速从多个(> 400)二进制图像中获取边缘

我基本上有多个二进制图像,每个图像都包含一个连接组件。这些连通分量是从图像中检索出来的,这意味着如果将所有连通分量都绘制到一个图像文件中,则不会有空白区域,也不会有重叠的连通分量。我正在寻找一种从连接组件中提取边缘像素的快速方法。连接组件当前保存在单个图像中,其中位置 (x,y) 处的数字 i 对应于第 i 个连接组件。由于有很多连接的组件,最大数量在 400-2000 范围内,我正在寻找一种快速获取每个组件的边缘像素的方法。这是一张图片来说明我对算法的期望: 示例

我知道有一些边缘检测算法,但它们处理灰度图像,并且对于大量图像中的大图像中的小对象没有任何好处。有什么建议么?

0 投票
1 回答
86 浏览

matlab - 在二进制图像中的 2 点之间转换 0 到 1 的次数

我有二进制指纹图像。我想计算 2 点之间从 1 到 0 的变换次数。两点的值为0。任何预兆可以帮助我编写matlab代码吗?

我的照片在这里:

在此处输入图像描述

我的观点是 a , b 。我在 a , b 之间画线

0 投票
1 回答
594 浏览

matlab - 找到垂直于轮廓的线

我正在使用 Matlab 中的图像分割。

我需要找到一条垂直于一组点的线,以计算该线与一组点之间的最大距离。
这是问题的一个例子:

图像示例

红点表示轮廓的凹度,该点是从轮廓的曲率中找到的。

黑线和绿点是线的极限,是手动绘制的,以显示我正在寻找的结果。

找到线后,接下来的任务是计算线与以黄色突出显示的轮廓部分之间的最大距离。

任何人都可以提出一个可能的解决方案吗?

0 投票
1 回答
1026 浏览

image - 距离变换`bwdist`输出完全是黑色的

为什么bwdistimhmin图像完全是黑色的?当我检查工作区中的两个矩阵时,这些值看起来不错。您可以在 Matlab 中运行此代码来检查它。预期的结果是一个灰度图像,其中每个连接组件的中心具有低强度,而连接组件的边缘具有高强度。边缘的像素距离离质心较远,距离值较高。如果距离值被认为是强度,则边缘处的强度很高。

将 1 视为要进行距离变换的连接分量,而 0 只是背景。我希望背景为0。

所需的结果是这样的。

在此处输入图像描述

0 投票
1 回答
1392 浏览

python-2.7 - Python:二值图像分割

有没有一种简单的方法可以在 python中实现二进制图像的分割?

我的 2d-“图像”是numpy数组。使用的值为1.00.0。我需要一个具有值的所有对象的列表1.0。每个黑色像素都是对象的一个​​像素。一个对象可能包含许多具有值的触摸像素1.0

我可以使用numpyand 也scipy

我已经尝试遍历所有像素并创建像素集并在旧集中填充新像素(或创建新集)。不幸的是,实施很差,非常有问题,而且速度也很慢。

希望这样的事情已经存在,或者有一种简单的方法可以做到这一点?

非常感谢你

0 投票
1 回答
712 浏览

r - 如何在 R 中保存二进制图像的 XY 坐标?

我试图在 R 中保存二进制图像的 XY 坐标,类似于 ImageJ 中的保存“保存 XY 坐标”功能。我查看了几个可用于 R 的图像分析包,但还没有弄清楚如何实现这一点。 图片

0 投票
1 回答
1302 浏览

python-2.7 - Python OpenCv2,计算彩色物体的轮廓

我希望能够计算检测到的对象中的像素数。我正在使用 cv2.threshold 函数。这是一些 sudo 代码。

从现在开始,我不知道如何计算对象的像素。如何找到二值图像的轮廓?我想有可能在 Thresh/ 蒙版上 cv2.bitwise_and 全黑图像,但这似乎可能很慢,而且我不知道如何创建这样的全黑和白图像。

那么 TD:LR,你如何计算二进制图像中物体的像素数?

注意:我实际上只是在最大对象之后,只需要像素数,而不是图像。

编辑:不尝试计算检测到的像素总数,我已经这样做了。想要从具有最大数量的对象中检测到的像素数。

0 投票
2 回答
218 浏览

opencv - 如何对二值化动物足迹图像进行去噪和提取 ROI

我目前正在使用足迹识别项目进行动物识别。我的主要任务是处理取自天然基质的动物足迹并识别该足迹所属的动物。第一步是对图像进行预处理并提取 ROI。这是我遇到困难的地方,因为处理后的图像包含很多噪音。

我已经执行了一系列预处理步骤,所有这些步骤都确实减少了噪音,但还不够。下图显示了我迄今为止取得的成果。

按照从左到右的顺序,第一行中的第一张图片是我需要分类的动物足迹示例。第二张图像是用于训练系统和分类动物物种(在本例中为熊物种)的图像的一个示例。第一行的第三和第四幅图像分别显示了测试图像的灰度和对数变换。

底行的第一张图像是图像的中值模糊,第二张显示自适应阈值。第三张图显示了八邻域连通性测试的结果,其中删除了任何缺少邻域的像素。第四个图像显示了在膨胀后应用侵蚀时的图像。最后一张图片显示了检测到的轮廓。

我尝试使用轮廓来删除小于某个区域的轮廓,但它仍然没有产生更好的图像表示。显示最大轮廓仅显示整个图像。

由于高水平的噪声,使用连接的组件可以检测到大量数据。我尝试过使用 blob 检测,但再次没有达到预期的结果。

我正在寻找去噪图像和提取 ROI 的最佳和最有效的方法。

示例图片: 不同处理阶段的足迹样本图像

0 投票
3 回答
2051 浏览

java - 在二进制图像中查找孔

假设我们有以下二进制图像

0 代表背景像素,1 代表图像像素。如您所见,此图像中有两个孔。有没有办法使用算法获得此图像中孔的数量?(Java 或 Python,但不是 Matlab)

0 投票
1 回答
1186 浏览

c++ - OpenCV——如何从低质量的灰度图像中获得更好的手部轮廓?

我需要从手部图像中获取轮廓,通常我通过 4 个步骤处理图像:

  1. 从 3 个通道到 1 个通道获取原始 RGB 灰度图像:

    /li>
  2. 使用高斯模糊过滤灰度图像:

    /li>
  3. 二值灰度图像,我按高度分割图像,通常我将图像按高度分割为 6 张图像,然后我对每张图像进行阈值处理:

    /li>
  4. 使用 findcontour 获得最大面积轮廓:

    /li>

通常它工作得很好, 但对于一些低质量的灰度图像,它不起作用,如下所示:

低质量灰色图像1

低质量灰色图像2

完整的代码在这里:

有人可以帮我获得更好的手部轮廓结果吗?谢谢!!!