如何找到任何图像的阈值,从信用卡图像中提取文本

时间:2017-08-26 08:33:24

标签: python image python-2.7 opencv

我手动应用阈值

我正在尝试提取信用卡的确切信息。

我附上了样本图片。

如何准确提取信用卡号码。

Image to analyze

import re

import cStringIO
import urllib

import cv2
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image
from noiselevel import estimate_noise
import pytesseract
oriimage="sh.png"
newimage = cv2.resize(oriimage,(583,327))
newimage = newimage[150:250, 0:600]
  # valid_image = newimage[150:250, 0:600]
cv2.imwrite("moon.tif",newimage)
 # filter=ImageFilter.UnsharpMask(6.0,269,0)
 #  im=Image.open("moon.tif")
 # i=im.filter(filter)
 # i.save("l3.tif")
a=Image.open("moon.tif")
inputt="moon.tif"
img = cv2.imread(inputt,0)

ret1,th1 = cv2.threshold(img,120,254,cv2.THRESH_BINARY)

2 个答案:

答案 0 :(得分:0)

您可以使用Adaptive Thresholding对图像进行二值化。自适应阈值处理基于其周围环境自动确定图像的给定部分的阈值。一个优点是您不必硬编码阈值。另一个更重要的优点是,即使图像中的光线不均匀,它也能提供合理的二值化。

答案 1 :(得分:0)

我通过调整裁剪图像的大小来提高准确度。

cv2.resize(newimage,(583,150)