मैं रसीदों के इस खिलौने उदाहरण से ओसीआर करने की कोशिश कर रहा हूं। पायथन 2.7 और ओपनसीवी 3.1 का उपयोग करना।पायथन + ओपनसीवी: ओसीआर छवि सेगमेंटेशन
ग्रेस्केल + धुंधला + बाहरी एज डिटेक्शन + प्राप्तियों में प्रत्येक क्षेत्र के विभाजन (उदाहरण के लिए "श्रेणी" बाद में देखने के लिए जो एक इस मामले नकदी -इन चिह्नित है)।
मुझे जटिल लगता है जब छवि ठीक से बदलने में सक्षम होने के लिए "skewed" होती है और फिर रसीदों के प्रत्येक सेगमेंट को "स्वचालित रूप से" सेगमेंट करती है।
उदाहरण:
कोई भी सुझाव?
नीचे दिया गया कोड किनारे का पता लगाने तक एक उदाहरण है, लेकिन जब रसीद पहली छवि की तरह है। मेरा मुद्दा टेक्स्ट की छवि नहीं है। छवि की पूर्व प्रसंस्करण है।
किसी भी मदद की सराहना की तुलना में अधिक मदद! :)
import os;
os.chdir() # Put your own directory
import cv2
import numpy as np
image = cv2.imread("Rent-Receipt.jpg", cv2.IMREAD_GRAYSCALE)
blurred = cv2.GaussianBlur(image, (5, 5), 0)
#blurred = cv2.bilateralFilter(gray,9,75,75)
# apply Canny Edge Detection
edged = cv2.Canny(blurred, 0, 20)
#Find external contour
(_,contours, _) = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
धन्यवाद @ आर। एस निखिल कृष्ण !! अगर मैं रसीद की छवि (स्केव नहीं) के लिए अपना कोड उपयोग करता हूं (प्रश्न में ऊपर देखें)। मुझे अच्छा विभाजन नहीं मिला है। सवाल। मुझे किस पैरामीटर को ट्यून करना चाहिए? उत्तल हलचल? अग्रिम में धन्यवाद! – donpresente
@donpresente मैंने परिवर्तन किए हैं। कारण यह वर्णों का पता नहीं लगा रहा था क्योंकि छवि का आकार बहुत छोटा था। एमएसईआर के पात्रों के बीच महत्वपूर्ण अंतर की आवश्यकता है। यह छवियों का आकार बदलकर –
निखिल कृष्ण का आकार बदल सकता है। मुझे लगता है कि हमारे पास एक विजेता है! :) विभाजन पर कोई अन्य सलाह? क्योंकि "हाथ से बने" मॉडल को प्रत्येक चरित्र को व्यक्तिगत रूप से सही तरीके से विभाजित करने की आवश्यकता हो सकती है? क्या मुझे पाठ पर ग्रिड मजबूर करना चाहिए? – donpresente