当前位置: 首页 > 知识库问答 >
问题:

bwconncomp函数中图像像素的Matlab索引

宋伟泽
2023-03-14

我一直在写一个文本检测代码,我正在使用一个二进制映射作为一个掩码来处理图像。在获得候选文本区域之后,我在图像上应用bwconncomp函数,然后在图像上应用掩码以获得这些区域的位置。

现在我创建了一个循环来丢弃不满足某些“子句”的区域。如果没有,我将该区域中的所有像素设为0(图像(cc.pixelidxlist{region})=0)和二进制映射(映射(cc.pixelidxlist{region})=0)。

当我在进入循环之前绘制地图和图像时,它们符合,但之后它们就不符合了。当我在循环后绘制图像时,显示它完美地擦除了区域,但地图不是这样的。有时在区域内会留下一些像素。

所以我的猜测是:bwconncomp给图像中像素的像素索引与地图中的像素索引不完全相同,这就是为什么地图中的一些像素在应该擦除的时候没有被擦除的原因。我说的对吗?还是我该去别的地方找?

共有1个答案

濮翰学
2023-03-14

我使用灰度图像来计算连接的分量,而不是二进制映射,所以当其中一些区域的像素值为0时,bwconncomp函数会计算它们,因为它们不是区域的一部分。所以,当我擦除一个区域时,那些像素值保持在0,而地图上的像素没有被擦除。

 类似资料:
  • 最近,我一直试图在Java中缩放像素数组(INT[])。我使用。setrgb()将我所有的像素数据添加到BufferedImage中。然后,BufferedImage提供了一个名为.getScaledInstance()的函数。这对我来说应该很有效,但我遇到了一个问题。.getScaledInstance()返回图像,而不是BufferedImage。对于Image对象,我不能使用.getrgb(

  • > 我有一张NxM大小的原始图像(FigureB-它是原始图像的蓝色香奈儿),从这张图像中我选择一个特定的区域来研究(NewfigureB),大小120x170; 然后我将这个区域划分为我所说的宏像素,即10x10的数据点(像素)阵列; 我然后在所选区域上涂上掩膜,只选择符合一定发光条件的点; 到目前为止,这是我想出来的。如有任何帮助,将不胜感激。 多谢

  • 从原始图像中我们可以看到,我的ROI是白色的棉花圈在红色的边界中。当我分割这幅图像时,我得到了如图所示的二值图像。我们注意到,与原始图像相比,二值图像中存在一些缺失区域。因此,我要计算ROI的原始图像的像素数和二值图像中白点的像素数。这样我就可以计算ROI的实际像素和实际分割的像素数量的差异。 谢谢你。

  • 我需要对matlab中的图像执行以下操作: 加载图像 计算图像的FFT(快速傅立叶变换) 将频率分量移到中心 像follow一样裁剪图像(如果图像分辨率为1000x1000,则图像所需的部分类似于以下坐标:100100800800。这是一个较小的图像。(应用过滤器去除高频的想法) 反向移位 傅里叶逆变换 . . . 我的代码如下所示: 问题是,当我想裁剪图像时,我的功能无法裁剪类型为“复杂双”的图

  • 我需要在MATLAB中实现一个基于连通分量算法原理的图像分割函数,但需要做一些修改。这是为了非常简单的2D图像,有一个背景颜色和一些不同颜色的对象。 其思想是,将图像作为一个矩阵,我提供了一个选择背景颜色的工具(它将对每个图像变化)。然后,当图像的背景颜色的值被选中时,我要对图像中的所有对象进行分割,结果应该是一个带标签的矩阵,图像大小相同,背景为0,每个对象有不同的数字。 这是我的意思的一个生动

  • 嘿,我正在尝试做一个程序,它加载一个彩色图像作为灰度画布,然后返回颜色点击像素。当setrgb()方法没有做它应该做的事情时,我就被困在这里了。我已经通过getRGB()从原始图像中复制了颜色,并使用setRGB()将其分配给新图像。我试图输出两个像素颜色值,但他们不一样。请帮我解决这个问题。以下是到目前为止的代码: