问题标签 [mser]

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 回答
519 浏览

matlab - Matlab中的MSER到二进制图像

如何将从图像中找出的 mser 区域存储为二进制图像变量?我试图通过 detectMSERFeatures 函数获取 MSER 区域并返回相应的对象。我可以绘制它,但不知道如何将其转换为二进制图像。我需要同一二进制图像中的所有区域。

0 投票
1 回答
8189 浏览

c++ - OpenCV 3.0.0 MSER 二进制掩码

我正在尝试在 OpenCV 3.0.0 beta 中使用 MSER 算法从图像中提取文本区域。最后,我需要一个带有检测到的 MSER 区域的二进制掩码,但该算法仅提供轮廓。我试图绘制这些轮廓,但没有得到预期的结果。

这是我使用的代码:

这是结果: OPENCV MSER

问题是非凸区域被穿过实际 MSER 区域的线填充。我只想要从 MATLAB 获得的区域中的像素列表detectMSERFeaturesMATLAB MSER

任何想法如何从轮廓中获取填充区域(或以其他方式获取 MSER 掩码)?

0 投票
1 回答
1132 浏览

opencv - 细胞分割的想法 - OpenCV

我正在尝试从显微图像中分割一些细胞。看起来像这样(抱歉,还不能发布图片)。

我尝试了Otsu thresholding,用于红色通道(因为单元格是红色的),它减少了大部分蓝色背景,但一些单元格被连接到一个对象中。结果可以在这张专辑中找到(第三张图片)。

所以为此我尝试了MSER,但结果不是很好,它检测到小脂肪滴,但不是整个细胞。如果我使用形态学操作来连接这些白色段,它也会连接一些细胞。结果可以在同一张专辑中找到,第二张图片。

由于接下来的颜色不同,我尝试了HSV 阈值而不是 MSER。我将它应用于 Otsu 脱粒图像。我找到了周围“蓝色”的 HSV 值并将其分段。它减少了细胞周围的大部分蓝色区域。对于 threshed 图像,我使用了findContours,我只使用了大于 300 像素的区域。结果看起来像上面相册中的最后一张图片。

是否有人对这种细胞分割的任何更“强大”和有用的方法有想法?问题是各种照明条件,其中 HSV 值不同。非常感谢您的帮助!

0 投票
1 回答
251 浏览

mser - MSER 圆心

我正在使用 MSER 特征检测器来检测图像中的所有圆圈,它工作得很好,但我必须得到这些圆圈的中心。您知道获得中心的任何可能性吗?这是源代码:

我做了什么:

0 投票
1 回答
662 浏览

android - OpenCV MSER 实现为 android 和桌面版本产生不同的结果

似乎 MSER 算法对于 OpenCV 3.0 的桌面版和 Android 版的工作方式不同。下面的代码根据运行 OpenCV 的平台(桌面或安卓)产生不同的结果:

接着

(台式机)或

(适用于安卓)

这是我在日志中得到的:

(桌面)

(安卓)

为什么有区别?是否有任何 MSER 默认设置,对于桌面和安卓来说是不同的?我被困在这里,非常感谢任何帮助。

0 投票
1 回答
2995 浏览

matlab - 使用 MSER 检测图像中的文本

我正在尝试按照本教程http://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html使用 Matlab 检测图像中的文本。

作为第一步,本教程使用detectMSERFeatures检测图像中的文本区域。但是,当我在图像上使用此步骤时,未检测到文本区域。

这是我正在使用的片段:

这是原始图像

这是第一步之后的图像

[![在此处输入图像描述][2]][2]

更新

我玩过参数,但似乎没有一个能完美地检测到文本区域。有没有比调整数字更好的方法来实现这一点?调整参数不适用于我可能拥有的大量图像。

我尝试过的一些参数及其结果:

0 投票
0 回答
1358 浏览

python - Opencv MSER 检测区域 C++ 与。Python

我正在将 Python 程序移植到使用 MSER (OpenCV) 检测区域的 C++。我注意到 C++ 程序检测到的 MSER 区域的数量明显低于 Python 的奇怪行为。我使用相同的图像作为它们的输入,并在调用检测区域之前执行相同的预处理步骤。对于特定的示例图像,Python 程序检测到的 MSER 区域数为 6620,但在移植到 C++ 后,我只得到 1164。

唯一不同的是,对于 Python,我使用的是 x64 版本的 cv2.pyd (\build\python\2.7\x64),而对于 C++,我使用的是 x86 (\build\x86\vc12)。

对于这两个程序,执行以下步骤:

  1. 使用 imread 读取图像

  2. 使用带有 COLOR_BGR2GRAY 的 cvtColor 转换为灰度

  3. 执行直方图均衡:

    /li>
  4. 获取图像的高度和宽度。
  5. 将图像缩放到 600X800 SVGA 大小

    一个。如果宽度 > 高度则比例 = 宽度 / 800.0

    湾。否则比例 = 高度 / 600.0

    C。使用具有上述比例因子 'scale' 的 'resize'

  6. 创建 MSER 对象
  7. 设置增量(4)
  8. 调用detectRegions
0 投票
1 回答
322 浏览

java - java openimaj OutOfMemoryError 使用 MSER 算法进行文本检测时

我想使用 java 在图像中进行文本检测。我正在使用 OpenIMAJ 使用 MSER 算法(作为第一阶段)来做到这一点,但这需要大量的处理时间,并且在大多数图像中返回异常 OutOfMemoryError。

我尝试更改参数,并更改算法源代码,但问题仍然存在。

当我使用 Matlab 进行 MSER 算法时,它很快并且没有 OutOfMemoryError。

这是我的代码:

当我调用以下方法时,实际上会发生错误:

没有问题的图像示例:

在此处输入图像描述

导致 OutOfMemoryError 的图像示例 2:

在此处输入图像描述

请帮忙。

0 投票
0 回答
488 浏览

c++ - OpenCV Mser 如何处理彩色图像?

我正在使用 OpenCV Mser 类。
对于灰度图像,我没有任何问题,结果很好,文档中定义的参数在逻辑上影响算法:

  • delta - 它比较 (sizei−sizei−delta)/sizei−delta
  • min_area - 修剪小于 minArea 的区域
  • max_area - 修剪大于 maxArea 的区域
  • max_variation - 修剪与其子节点大小相似的区域

但是我对彩色图像的 Mser 有问题。我查看了源代码并没有找到彩色图像的单独实现。了解它是否通过使用图像的阈值水平找到区域的主要重要事项,“delta”参数的方程是什么,它应该不同于为灰度图像定义的方程。如果它使用另一种算法,下面提到的参数的确切含义:

  • 最大进化;//! 对于彩色图像,进化步骤
  • 区域阈值;//! 导致重新初始化的区域阈值
  • 最小边距;//! 忽略太小的边距

由于彩色图像的函数结果没有描述性,因此区域很多,很难理解算法是如何工作的。

0 投票
0 回答
126 浏览

python - 无法遍历单个 MSER 区域的集合,图像无论如何都是空白的。

我有一个脚本可以收集照片中的所有 MSER 区域:

它运行良好,没有问题:

但是,当我尝试将这些转换为 OpenCV 中的折线时,我只会得到无限的 numpy 错误。然后我尝试变得更简单,并简单地遍历各个船体:

但这只是给了我 66 个空白图像(即:只是普通图片),而我应该得到 66 个左右的图像,每个图像都有一个绿色 MSER 叠加。我不确定问题出在哪里。谁能帮我?