- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 mser 检测图像中的文本并删除所有非文本区域。使用下面的代码我能够检测到文本:
import cv2
import sys
mser = cv2.MSER_create()
img = cv2.imread('signboard.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
vis = img.copy()
regions, _ = mser.detectRegions(gray)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
cv2.polylines(vis, hulls, 1, (0, 255, 0))
cv2.imshow('img', vis)
if cv2.waitKey(0) == 9:
cv2.destroyAllWindows()
如何删除所有非文本区域并获得仅包含文本的二值图像?我搜索了很多,但找不到任何使用 python 和 opencv 执行此操作的示例代码。
最佳答案
您可以使用找到的轮廓获得二值图像。只需将填充的轮廓绘制到白色的空 img。
mask = np.zeros((img.shape[0], img.shape[1], 1), dtype=np.uint8)
for contour in hulls:
cv2.drawContours(mask, [contour], -1, (255, 255, 255), -1)
注意:参见the official docs有关 drawContours 的更多信息
然后您可以使用它来仅提取文本:
text_only = cv2.bitwise_and(img, img, mask=mask)
关于python - 在 Opencv python 中使用 MSER 从图像中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185854/
我尝试使用 MSER 算法进行文本检测。我使用这段代码: import cv2 import numpy as np #Create MSER object mser = cv2.MSER_creat
我有时间问题。我已经编写了一个用于图像处理的 qt Gui。对于这种情况,实现用于视频处理和对象跟踪的 blobdectetors 是相关的。主要是好看。它在处理、抓取、mser 操作和显示后使用 G
最近,我遇到了一个关于 OpenCV MSER 检测的问题。 下图中的文本未正确提取。 形态学关闭后,结果似乎是正确的。 代码: int main() { // load cv::Ma
我在 Python OpenCV 中找到了一个 MSER 示例。当我尝试运行它时,当它尝试 reshape list 时出现错误/numpy.array .错误是: AttributeError: '
我正在研究应用于组织学图像的图像配准方法。 我有一个问题。我想使用 MSER 特征检测器来检测图像上的关键点。使用 opencv 提供的 MSER 函数检索 MSER 轮廓后,我计算每个轮廓的质心,以
我创建了一个提取 MSER 数据并将其存储在 CvSeq* 中的应用程序。我想知道 OpenCV 中是否有任何函数或教程可用于使用两幅图像的提取数据将数据与另一幅图像进行比较。 谢谢。 最佳答案 MS
我已经在我的 Windows 机器上安装了 cv2 (opencv-3.0.0),但是无法访问 MSER 类: import cv2 cv2.MSER() Traceback (most recent
我正在研究一种图像配准方法,我想使用基于区域的特征检测器。作为代表,因为它已经在 opencv 中实现,我想到了 MSER。 我知道如何检测 MSER 区域。MSER 检测器在点矢量、轮廓内给出 MS
我正在使用来自 opencv-python 的 MSER 来检测使用此 stackoverflow question 中的代码的文本.谁能帮助我理解为什么在计算对象的凸包之前将轮廓 p reshape
我想知道 MATLAB 中是否有 MSER ( Maximally stable extremal regions) 的完整实现?那些在VLFeat是 Mex 或 C++ 实现并导入到 Matlab
我有一张发票图片,我想检测上面的文字。所以我打算用2个步骤:首先是识别文本区域,然后使用OCR识别文本。 为此,我在 python 中使用 OpenCV 3.0。我能够识别文本(包括一些非文本区域),
任何人都可以为 MSER 类中的这 9 个参数提供一些大致信息吗?这 9 个输入如下: int delta, int minArea, int maxArea, 双最大变化,双最小多样性, int m
似乎 MSER 算法对于 OpenCV 3.0 的桌面版和 Android 版的工作方式不同。下面的代码根据运行 OpenCV 的平台(桌面或安卓)产生不同的结果: Mat img = Imgcode
在 MSER detection in Matlab 之后,返回的 MSER 区域是椭圆。我们如何获得构成每个区域的确切点数? 简单代码: REGIONS = detectMSERFeatures(I
我正在构建一个通用的图像文本解析算法。我在运行: MSER.detectRegions() 对比 findContours(...cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX
我正在尝试裁剪掉使用 mser 检测到的区域。 mser.detect() 函数生成 mser-regions,我想裁剪该区域以得到结果输出。我正在使用 python,如果有人可以在 python 中
我正在处理这张图片作为来源: 应用下一个代码... import cv2 import numpy as np mser = cv2.MSER_create() img = cv2.imread('C
我正在使用 MSER 来识别 MSER 中的文本区域。我正在使用以下代码提取区域并将它们保存为图像。目前,每个识别区域都保存为单独的图像。但是,我想合并属于合并为单个图像的一行文本的区域。 impor
我一直在尝试使用 MSER 获得更少的框,因为我在同一元素上重复创建了太多框,像素差异很小。我的代码如下: ## Get mser, and set parameters _delta = 1
我的图片大部分是黑色的,上面有一些白色的 Blob 。我想将此类图像与没有此类 Blob 的图像区分开来。 我尝试了 MSER 并调整了它的参数,以便在大多数有 Blob 的图像中正确检测 Blob
我是一名优秀的程序员,十分优秀!