Trying to resize images in a loop using cv2.resize

Viewed 125
import pytesseract
import regex as re
from PIL import Image
import xlsxwriter
import numpy as np
import cv2
import os
import glob

pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract\\tesseract.exe'

outWorkbook = xlsxwriter.Workbook("out.xlsx")

for img_num in range (1,21):
    if img_num<10:
        img_num='0'+str(img_num)
    else:
        img_num=str(img_num)
    
print(img_num)
img_name = img_num + '.png'

#img = cv2.imread('01.png', 0)

img_name = cv2.resize(img_name, None, fx=0.32, fy=0.28)

img_crop = img_name[0:,527:]
    
output = pytesseract.image_to_string(img_name)
    
#output = pytesseract.image_to_string(img_name)


# Contractor code line
if re.search('CONTRACTOR:', output):
    filter_contractor = re.findall(r"[A-Z]{0,3}-[A-Z]{4}-[A-Z]{12}", output)
else: filter_contractor = " "
    
#Drawing number code line
if re.search('DRAWING NUMBER:\s[A-Z]{2}.[A-Z]{3}.[A-Z]{1}.[0-9]{2}.[0-9]{2}.[0-9]{2}.[0-9]{2}.[A-Z]{1}', output):
    filter_dn = re.findall(r"[A-Z]{2}.[A-Z]{3}.[A-Z]{1}.[0-9]{2}.[0-9]{2}.[0-9]{2}.[0-9]{2}.[A-Z]{1}", output)
    
elif re.search('DRAWING NUMBER:\n[A-Z]{3}.[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}', output):
    filter_dn = re.findall(r"[A-Z]{3}.[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}", output)
    
elif re.search('DRAWING NO.:\n[A-Z]{3}.[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}', output):
      filter_dn = re.findall(r"[A-Z]{3}.[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}", output)
    
elif re.search('[A-Z]{2}-[A-Z]{3}-[A-Z]{1}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}', output):
      filter_dn = re.findall(r"[A-Z]{2}-[A-Z]{3}-[A-Z]{1}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[A-Z]{1}", output)
    
else: filter_dn = " "

#Title code line
if re.search('BRIDGE DESIGN', output):
    filter_title = re.findall(r'BRIDGE DESIGN', output)
    
elif re.search('SUNWAY BOTTLE DESIGN', output):
    filter_title = re.findall(r"SUNWAY BOTTLE DESIGN", output)

elif re.search('STEEL STRUCTURE', output):
    filter_title = re.findall(r"STEEL STRUCTURE", output)

else: filter_title = ["SMILEY"]

#Drawn by code line
if re.search('CWC', output, re.IGNORECASE):
    filter_drawn = re.findall(r'CWC', output, re.IGNORECASE)
elif re.search('LEO', output, re.IGNORECASE):
    filter_drawn = re.findall(r'LEO', output, re.IGNORECASE)
    
elif re.search('BEN', output, re.IGNORECASE):
    filter_drawn = re.findall(r'BEN', output, re.IGNORECASE)

else: filter_drawn = " "

#Project number code line
if re.search('PROJECT NO:', output):
    if re.search('\s[A-Z]{2}-[A-Z]{3}-[0-9]{2}\s', output):
        filter_projectno = re.findall(r'\s[A-Z]{2}-[A-Z]{3}-[0-9]{2}\s', output)
    elif re.search('\s[A-Z]{3}-[0-9]{2}-[A-Z]{2}\s', output):
        filter_projectno = re.findall(r'\s[A-Z]{3}-[0-9]{2}-[A-Z]{2}\s', output)
    else: filter_projectno = " "
    
else: filter_projectno = " "

#CAD number code line
if re.search('CAD NO:', output):
    filter_cad = re.findall(r'[A-Z]{2}-[A-Z]{3}-[A-Z]{3}-[0-9]{2}', output)
    
else: filter_cad = " "

#STATUS number code line
if re.search('STATUS:', output):
    if re.search('ISSUED', output):
        filter_status = re.findall(r'ISSUED', output)
    elif re.search('DRAWING', output):
        filter_status = re.findall(r'DRAWING', output)
else: filter_status = " "

#LANG number code line
if re.search('ENG', output):
    filter_lang = re.findall(r'ENG', output)

elif re.search('EN',output):
    filter_lang = re.findall(r'EN', output)
    
else: filter_lang = " "

   
try:
      dict_type = {'CONTRACTOR':filter_contractor[0], 'DRAWING NUMBER':filter_dn[0], 
                  'TITLE':filter_title[0], 'DRAWN BY':filter_drawn[0], 
                  'PROJECT NO':filter_projectno[0].strip(), 
                  'CAD NO':filter_cad[0], 'STATUS':filter_status[0], 
                  'LANGUAGE':filter_lang[0]} 
except IndexError:
      print(dict_type)
      #print(img_num)



dict2list = list(dict_type.items())
print(dict2list)
#dict_type.clear()
list2array = np.array(dict2list)

field_title, content = map(list, zip(*list2array))



#outSheet = img + " Sheet"
outSheet = outWorkbook.add_worksheet()
#img_name = outWorkbook.add_worksheet()



outSheet.write("A1", "Field Title")
outSheet.write("B1", "Content")

for x in range(len(field_title)):
    outSheet.write('A' + str(x+2), field_title[x])
    #a.value = field_title[x]
    
for y in range(len(content)):
    outSheet.write('B' + str(y+2), content[y])
    #a.value = content[y]
   
outSheet.set_column('A:B', 30)
       
    
outWorkbook.close()

I'm trying to resize my images for better accuracy. It works when I manually change the images to test it out but not when I loop through them. What could be the problem? The error that comes out is : Expected cv::UMat for argument 'src'

0 Answers
Related