如何改善不良质量图像的文本检测?

时间:2019-09-16 03:11:39

标签: python opencv

通常,阈值和文本检测对于高质量的图像来说是好的,但是不好的图像实际上并不是很好。 我认为不良图像需要一些预处理,但是我不知道如何处理。 您是否有任何想法来改善不良图像的文本检测?

import sys
import cv2
import math

img = cv2.imread(sys.argv[1])

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

_, bw = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)

kernel = cv2.getStructuringElement(cv2.MORPH_DILATE, (5, 5))
grad = cv2.morphologyEx(bw, cv2.MORPH_GRADIENT, kernel)

contours, hierarchy = cv2.findContours(grad, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for c in contours:
    peri = cv2.arcLength(c, True)
    approx = cv2.approxPolyDP(c, 0.01 * peri, True)
    x, y, w, h = cv2.boundingRect(approx)
    if math.fabs(cv2.contourArea(approx)) > 100:
        cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow('rects', img)
cv2.waitKey(0)
  • 良好的质量图像 good quality image

  • 劣质图像 bad quality image

0 个答案:

没有答案