def adjustToTextLine(mubandict, box, typeT, templet): # box顺序需要调整 # 检查二维码错误定位的长宽比 StandardRate = 0.7 if typeT != 11: midbox = sortBox(box) # 长宽检测二维码 rateHtoW = (midbox[3] - midbox[1]) / (midbox[2] - midbox[0]) if rateHtoW > 1.0 / StandardRate or rateHtoW < StandardRate: print('QRCode seems wrong') else: midbox = box rateHtoW = (midbox[3] - midbox[1]) / (midbox[2] - midbox[0]) if rateHtoW > 1.0 / StandardRate or rateHtoW < StandardRate: print('QRCode seems wrong') # print(midbox) mubanBox = [] if typeT == 1: mubanBox = [526, 272, 634, 379] # [x1,y1,x2,y2] if typeT == 2: # mubanBox = [483, 259, 632, 439] # mubanBox = [365, 234, 425, 297]#[[365, 297], [365, 234], [425, 234], [425, 297]] # [[601, 409], [507, 408], [508, 318], [602, 319]] mubanBox = [508, 318, 601, 409] # use TR009.JPG if typeT == 3: mubanBox = [365, 234, 425, 297] # [[365, 297], [365, 234], [425, 234], [425, 297]]补票 if typeT == 11: mubanBox = templet w = midbox[2] - midbox[0] h = midbox[3] - midbox[1] for x in mubandict: tempArray = copy.deepcopy(mubandict[x]) mubandict[x][0] = midbox[2] - (int)( (mubanBox[2] - tempArray[0]) / (mubanBox[2] - mubanBox[0]) * w) mubandict[x][1] = midbox[3] - (int)( (mubanBox[3] - tempArray[1]) / (mubanBox[3] - mubanBox[1]) * h) mubandict[x][2] = tempArray[2] / (mubanBox[2] - mubanBox[0]) * w mubandict[x][3] = tempArray[3] / (mubanBox[3] - mubanBox[1]) * h if mubandict[x][0] < 0: mubandict[x][0] = 0 if mubandict[x][1] < 0: mubandict[x][1] = 0 print(mubandict) if typeT == 1: # 调整蓝票框 mubandict = muban.de_muban(mubandict, 0.8) if typeT == 11: mubandict = muban.de_muban(mubandict, 0.9) return mubandict
def adjustToTextLine(mubandict, box, typeT, templet): # box顺序需要调整 if typeT != 11: midbox = sortBox(box) else: midbox = box # print(midbox) mubanBox = [] if typeT == 1: mubanBox = [526, 272, 634, 379] # [x1,y1,x2,y2] if typeT == 2: # mubanBox = [483, 259, 632, 439] # mubanBox = [365, 234, 425, 297]#[[365, 297], [365, 234], [425, 234], [425, 297]] # [[601, 409], [507, 408], [508, 318], [602, 319]] mubanBox = [508, 318, 601, 409] # use TR009.JPG if typeT == 11: mubanBox = templet w = midbox[2] - midbox[0] h = midbox[3] - midbox[1] for x in mubandict: tempArray = copy.deepcopy(mubandict[x]) mubandict[x][0] = midbox[2] - (int)( (mubanBox[2] - tempArray[0]) / (mubanBox[2] - mubanBox[0]) * w) mubandict[x][1] = midbox[3] - (int)( (mubanBox[3] - tempArray[1]) / (mubanBox[3] - mubanBox[1]) * h) mubandict[x][2] = tempArray[2] / (mubanBox[2] - mubanBox[0]) * w mubandict[x][3] = tempArray[3] / (mubanBox[3] - mubanBox[1]) * h if mubandict[x][0] < 0: mubandict[x][0] = 0 if mubandict[x][1] < 0: mubandict[x][1] = 0 # print(mubandict) if typeT == 1: # 调整蓝票框 mubandict = muban.de_muban(mubandict, 0.8) if typeT == 11: mubandict = muban.de_muban(mubandict, 0.9) return mubandict
def simplyAdjust(mubandict, box, tplt, shape): for x in mubandict: mubandict[x][0] = mubandict[x][0] + box[0] - tplt[0] mubandict[x][1] = mubandict[x][1] + box[1] - tplt[1] if mubandict[x][0] < 0: mubandict[x][0] = 0 if mubandict[x][1] < 0: mubandict[x][1] = 0 if mubandict[x][0] + mubandict[x][2] > shape[1]: mubandict[x][0] = shape[1] - mubandict[x][2] if mubandict[x][1] + mubandict[x][3] > shape[0]: mubandict[x][1] = shape[0] - mubandict[x][3] # print(mubandict) mubandict = muban.de_muban(mubandict, 1.0) return mubandict