def process(img_data): char_result = [] report = proc.preprocessing(img_data) # 中央視窗裁剪 report = proc.report_processing(report) # 傷害報告類型圖片處理 char_list = unitproc.process(report) # 角色頭像鎖定 if len(char_list) == 0: return None positions = [char["position"] for char in char_list] startX = np.min(positions) for i in range(len(char_list)): char = char_list[i] objUnit = unitproc.unit(char["unit_head"]) objUnit.detect() result = objUnit.getResult() if result == False: continue result["damage"] = damage.process( positions[i], char["unit_head"].shape, report) if positions[i][0] == startX else 0 char_result.append(result) return char_result
def process(img) -> list: report = proc.preprocessing(img) report = proc.search_processing(report) char_list = unitproc.process(report) result = [] if len(char_list) == 0: return None for char in char_list: objUnit = unitproc.unit(char["unit_head"]) objUnit.detect() result.append(objUnit.getResult()) return result
def process(img_data): char_result = { "left": { "result": -1, "team": [] }, "right": { "result": -1, "team": [] } } result_length = {"left": 0, "right": 0} report = proc.preprocessing(img_data) # 中央視窗裁剪 teams = proc.upload_processing(report) # 傷害報告類型圖片處理 if len(teams) == 0: return None types = ["left", "right"] for side in types: team = unitproc.process(teams[side]) # 角色頭像鎖定 if len(team) == 0: return None for char in team: objUnit = unitproc.unit(char["unit_head"]) objUnit.detect() result = objUnit.getResult() if result == False: print("找不到這角色") else: char_result[side]["team"].append(result) result_length[side] = getResult(teams[side + "Result"]) if (result_length["right"] > result_length["left"]): char_result["right"]["result"] = 0 char_result["left"]["result"] = 1 else: char_result["right"]["result"] = 1 char_result["left"]["result"] = 0 return char_result
from module.princess import unitproc from module.image import proc import cv2 report = cv2.imread("assets/b.png") # 讀取圖片 report = proc.preprocessing(report) # 中央視窗裁剪 report = proc.report_processing(report) # 傷害報告類型圖片處理 char_list = unitproc.process(report) # 角色頭像鎖定 for char in char_list: objUnit = unitproc.unit(char) objUnit.detect() result = objUnit.getResult() if result == False: print("找不到這角色") else: print(result)
# 抓圖片文字 # Adding custom options custom_config = r'digits' damage = pytesseract.image_to_string(crop_img, config=custom_config) damage = re.search('\d{2,}', damage) result.append(damage.group()) # 加上位移量 y = y+move print(result) return result if __name__ == "__main__": img = cv2.imread("assets/report2.jpg") report = proc.preprocessing(img) report = proc.report_processing(report) char_list = unitproc.process(report) for char in char_list: print(char["position"]) positions = [char["position"] for char in char_list] startX = np.min(positions) positions = [pos for pos in positions if pos[0] == startX] print(positions) result = main(positions[2], char_list[2]["unit_head"].shape, report) print(result) # cv2.imshow("test", report)