- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一张发票图片,我想检测上面的文字。所以我打算用2个步骤:首先是识别文本区域,然后使用OCR识别文本。
为此,我在 python 中使用 OpenCV 3.0。我能够识别文本(包括一些非文本区域),但我还想从图像中识别文本框(也不包括非文本区域)。
我的输入图片是:
输出是:
我为此使用以下代码:
img = cv2.imread('/home/mis/Text_Recognition/bill.jpg')
mser = cv2.MSER_create()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Converting to GrayScale
gray_img = img.copy()
regions = mser.detectRegions(gray, None)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
cv2.polylines(gray_img, hulls, 1, (0, 0, 255), 2)
cv2.imwrite('/home/mis/Text_Recognition/amit.jpg', gray_img) #Saving
现在,我想识别文本框,并删除/取消识别发票上的任何非文本区域。我是 OpenCV 的新手,也是 Python 的初学者。我可以在 MATAB example 中找到一些示例和 C++ example ,但是如果我将它们转换为python,对我来说会花费很多时间。
有没有使用 OpenCV 的 python 示例,或者任何人都可以帮助我吗?
最佳答案
下面是代码
# Import packages
import cv2
import numpy as np
#Create MSER object
mser = cv2.MSER_create()
#Your image path i-e receipt path
img = cv2.imread('/home/rafiullah/PycharmProjects/python-ocr-master/receipts/73.jpg')
#Convert to gray scale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
vis = img.copy()
#detect regions in gray scale image
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)
cv2.waitKey(0)
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)
#this is used to find only text regions, remaining are ignored
text_only = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("text only", text_only)
cv2.waitKey(0)
关于python - OpenCV MSER 检测文本区域 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078625/
我尝试使用 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
我是一名优秀的程序员,十分优秀!