问题标签 [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.
matlab - Matlab中的MSER到二进制图像
如何将从图像中找出的 mser 区域存储为二进制图像变量?我试图通过 detectMSERFeatures 函数获取 MSER 区域并返回相应的对象。我可以绘制它,但不知道如何将其转换为二进制图像。我需要同一二进制图像中的所有区域。
c++ - OpenCV 3.0.0 MSER 二进制掩码
我正在尝试在 OpenCV 3.0.0 beta 中使用 MSER 算法从图像中提取文本区域。最后,我需要一个带有检测到的 MSER 区域的二进制掩码,但该算法仅提供轮廓。我试图绘制这些轮廓,但没有得到预期的结果。
这是我使用的代码:
这是结果:
问题是非凸区域被穿过实际 MSER 区域的线填充。我只想要从 MATLAB 获得的区域中的像素列表detectMSERFeatures
:
任何想法如何从轮廓中获取填充区域(或以其他方式获取 MSER 掩码)?
opencv - 细胞分割的想法 - OpenCV
我正在尝试从显微图像中分割一些细胞。看起来像这样(抱歉,还不能发布图片)。
我尝试了Otsu thresholding,用于红色通道(因为单元格是红色的),它减少了大部分蓝色背景,但一些单元格被连接到一个对象中。结果可以在这张专辑中找到(第三张图片)。
所以为此我尝试了MSER,但结果不是很好,它检测到小脂肪滴,但不是整个细胞。如果我使用形态学操作来连接这些白色段,它也会连接一些细胞。结果可以在同一张专辑中找到,第二张图片。
由于接下来的颜色不同,我尝试了HSV 阈值而不是 MSER。我将它应用于 Otsu 脱粒图像。我找到了周围“蓝色”的 HSV 值并将其分段。它减少了细胞周围的大部分蓝色区域。对于 threshed 图像,我使用了findContours,我只使用了大于 300 像素的区域。结果看起来像上面相册中的最后一张图片。
是否有人对这种细胞分割的任何更“强大”和有用的方法有想法?问题是各种照明条件,其中 HSV 值不同。非常感谢您的帮助!
mser - MSER 圆心
我正在使用 MSER 特征检测器来检测图像中的所有圆圈,它工作得很好,但我必须得到这些圆圈的中心。您知道获得中心的任何可能性吗?这是源代码:
我做了什么:
android - OpenCV MSER 实现为 android 和桌面版本产生不同的结果
似乎 MSER 算法对于 OpenCV 3.0 的桌面版和 Android 版的工作方式不同。下面的代码根据运行 OpenCV 的平台(桌面或安卓)产生不同的结果:
接着
(台式机)或
(适用于安卓)
这是我在日志中得到的:
(桌面)
(安卓)
为什么有区别?是否有任何 MSER 默认设置,对于桌面和安卓来说是不同的?我被困在这里,非常感谢任何帮助。
matlab - 使用 MSER 检测图像中的文本
我正在尝试按照本教程http://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html使用 Matlab 检测图像中的文本。
作为第一步,本教程使用detectMSERFeatures
检测图像中的文本区域。但是,当我在图像上使用此步骤时,未检测到文本区域。
这是我正在使用的片段:
这是原始图像
这是第一步之后的图像
[![在此处输入图像描述][2]][2]
更新
我玩过参数,但似乎没有一个能完美地检测到文本区域。有没有比调整数字更好的方法来实现这一点?调整参数不适用于我可能拥有的大量图像。
我尝试过的一些参数及其结果:
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)。
对于这两个程序,执行以下步骤:
使用 imread 读取图像
使用带有 COLOR_BGR2GRAY 的 cvtColor 转换为灰度
执行直方图均衡:
/li>- 获取图像的高度和宽度。
将图像缩放到 600X800 SVGA 大小
一个。如果宽度 > 高度则比例 = 宽度 / 800.0
湾。否则比例 = 高度 / 600.0
C。使用具有上述比例因子 'scale' 的 'resize'
- 创建 MSER 对象
- 设置增量(4)
- 调用detectRegions
c++ - OpenCV Mser 如何处理彩色图像?
我正在使用 OpenCV Mser 类。
对于灰度图像,我没有任何问题,结果很好,文档中定义的参数在逻辑上影响算法:
- delta - 它比较 (sizei−sizei−delta)/sizei−delta
- min_area - 修剪小于 minArea 的区域
- max_area - 修剪大于 maxArea 的区域
- max_variation - 修剪与其子节点大小相似的区域
但是我对彩色图像的 Mser 有问题。我查看了源代码并没有找到彩色图像的单独实现。了解它是否通过使用图像的阈值水平找到区域的主要重要事项,“delta”参数的方程是什么,它应该不同于为灰度图像定义的方程。如果它使用另一种算法,下面提到的参数的确切含义:
- 最大进化;//! 对于彩色图像,进化步骤
- 区域阈值;//! 导致重新初始化的区域阈值
- 最小边距;//! 忽略太小的边距
由于彩色图像的函数结果没有描述性,因此区域很多,很难理解算法是如何工作的。
python - 无法遍历单个 MSER 区域的集合,图像无论如何都是空白的。
我有一个脚本可以收集照片中的所有 MSER 区域:
它运行良好,没有问题:
但是,当我尝试将这些转换为 OpenCV 中的折线时,我只会得到无限的 numpy 错误。然后我尝试变得更简单,并简单地遍历各个船体:
但这只是给了我 66 个空白图像(即:只是普通图片),而我应该得到 66 个左右的图像,每个图像都有一个绿色 MSER 叠加。我不确定问题出在哪里。谁能帮我?