Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Aniket025
GitHub Repository: Aniket025/Medical-Prescription-OCR
Path: blob/master/Model-3/ocr/page.pyc
426 views
�
rO�Zc@sbdZddlZddlZddlTd�Zd�Zd�Zd�Zd	�Z	d
�Z
dS(sB
Crop background and transform perspective from the photo of page
i����Ni(t*cCspt|dd�}tj|tjtjd��}t|t|��}|jt	|��}t
||�}|S(s Finding Page i�i�ii(ii(tedgesDettcv2tmorphologyExtMORPH_CLOSEtnptonestfindPageContourstresizetdottratiotperspImageTransform(timaget
imageEdgestclosedEdgestpageContourtnewImage((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyt	detection	s	cCs�tjt|�tj�}tj|ddd�}tj|dtjtjdd�}tj|d�}tj	|ddddtj
dd	d	d	g�}tj|||�S(
sE Preprocessing (gray, thresh, filter, border) + Canny edge detection i	iKi�isiiitvaluei(RtcvtColorRtCOLOR_BGR2GRAYtbilateralFiltertadaptiveThresholdtADAPTIVE_THRESH_GAUSSIAN_Ct
THRESH_BINARYt
medianBlurtcopyMakeBordertBORDER_CONSTANTtCanny(timgtminValtmaxVal((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyRs	cCsttj|dd�}|jdd�}tj|tj|�|tj|�|tj|�|tj|�g�S(s7 Sort corners: top-left, bot-left, bot-right, top-righttaxisi(Rtdifftsumtarraytargmintargmax(tptsR!tsumm((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pytfourCornersSort/scCs||7}d||dk<|S(s& Offset contour because of 5px border i((tcnttoffset((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyt
contourOffset9s
cCsZtj|tjtj�\}}}|jd}|jd}||d}|d|d}|}	tjddgd|g||g|dgg�}
x�|D]�}tj|t�}tj	|d|t�}
t
|
�dkr�tj|
�r�|	tj|
�ko|knr�tj|
�}	|
}
q�q�Wt
|
dd�df�}
t|
d	�S(
s' Finding corner points of page contour iig�?i
g���Q��?iNi����(i����i����(RtfindContourst	RETR_TREEtCHAIN_APPROX_SIMPLEtshapeRR#t	arcLengthtTruetapproxPolyDPtlentisContourConvextcontourAreaR(R+(tedgesRtim2tcontourst	hierarchytheighttwidthtMIN_COUNTOUR_AREAtMAX_COUNTOUR_AREAtmaxAreaRR)t	perimetertapprox((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyR@s,	

		
%
cCsttjj|d|d�tjj|d|d��}ttjj|d|d�tjj|d|d��}tjddgd|g||g|dggtj�}|jtjkr�|jtj�}ntj	||�}tj
||t|�t|�f�S(s: Transform perspective from start points to target points iiii(tmaxRtlinalgtnormR#tfloat32tdtypetastypeRtgetPerspectiveTransformtwarpPerspectivetint(RtsPointsR:R;ttPointstM((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyRds!!		(t__doc__tnumpyRRthelpersRRR(R+RR(((s8/Users/Piyush_Jena/Documents/Opensoft/MASTER/ocr/page.pyt<module>s
			
		$