>

이미지에 한 글자로 된 품질이 좋지 않습니다 . 이 값을 추출해야합니다

오픈 CV로이 작업을 시도했습니다. 코드는 양질의 이미지에서 작동하지만이 이미지에서 추출하는 데 도움이 필요합니다

from PIL import Image
import pytesseract
import argparse
import os
import cv2
import numpy as np
img = cv2.imread(r"/home/ubuntu/xyz/xyz.jpg")
img = cv2.resize(img, None, fx=1.5, fy=1.5, interpolation=cv2.INTER_CUBIC)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
img = cv2.GaussianBlur(img, (5, 5), 0)
img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)\[1\]  
# Save the filtered image
cv2.imwrite(r"/home/ubuntu/xyz/rr.jpg", img)
# Read text with tesseract for python
result = pytesseract.image_to_string(img, lang="eng")
result


  • 답변 # 1

    왜 당신이 Gaussian Blur 를 필요로 하는가  이 상황에서

    img = cv2.GaussianBlur(img, (5, 5), 0)
    
    

    큰 창으로 (5,5)

    이미지 크기를 조정하는 대신 흰색 테두리를 만들 수 있다고 생각합니다. 그리고 당신은 erosion 를 사용할 수 있습니다  이미지에서 노이즈를 제거하는 기술

  • 이전 Javascript에서 bzip2 데이터 압축 해제
  • 다음 asp.net - 이 버전의 Reporting Services에서이 보고서의 정의가 유효하지 않거나 지원되지 않습니다