Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
7 views

Python Project

The document describes a Python project that uses OpenCV and Tesseract OCR to extract text from an image file. It imports required packages, reads an image, performs preprocessing like grayscale conversion and thresholding, finds contours, crops text blocks and applies OCR to recognize the text.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Python Project

The document describes a Python project that uses OpenCV and Tesseract OCR to extract text from an image file. It imports required packages, reads an image, performs preprocessing like grayscale conversion and thresholding, finds contours, crops text blocks and applies OCR to recognize the text.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

PYTHON PROJECT

CODE :

i# Import required packages


import cv2
import pytesseract

# Mention the installed location of Tesseract-OCR in your system


pytesseract.pytesseract.tesseract_cmd = '/opt/homebrew/bin/tesseract'

# Read image from which text needs to be extracted


img = cv2.imread("as.jpg")

# Preprocessing the image starts

# Convert the image to gray scale


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

# Performing OTSU threshold


ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)

# Specify structure shape and kernel size.


# Kernel size increases or decreases the area
# of the rectangle to be detected.
# A smaller value like (10, 10) will detect
# each word instead of a sentence.
rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18))

# Applying dilation on the threshold image


dilation = cv2.dilate(thresh1, rect_kernel, iterations = 1)

# Finding contours
contours, hierarchy = cv2. ndContours(dilation, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_NONE)

# Creating a copy of image


im2 = img.copy()

# A text le is created and ushed


le = open("recognized.txt", "w+")
le.write("")
le.close()

# Looping through the identi ed contours


# Then rectangular part is cropped and passed on
# to pytesseract for extracting text from it
# Extracted text is then written into the text le
for cnt in contours:
x, y, w, h = cv2.boundingRect(cnt)

# Drawing a rectangle on copied image


rect = cv2.rectangle(im2, (x, y), (x + w, y + h), (0, 255, 0), 2)

# Cropping the text block for giving input to OCR


cropped = im2[y:y + h, x:x + w]

# Open the le in append mode


fi
fi
fi
fi
fi
fi
fl
fi
fi
le = open("recognized.txt", "a")

# Apply OCR on the cropped image


text = pytesseract.image_to_string(cropped)

# Appending the text into le


le.write(text)
le.write("\n")

# Close the le
le.close

OUTPUT :

IMAGE FILE :

RECOGNIZED TEXT :
fi
fi
fi
fi
fi
fi

You might also like