Skip to content

Commit 797cd0a

Browse files
Bug fixes
1. Star detection error 2. Unexpected crash 3. Add star distribution
1 parent f27594d commit 797cd0a

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
artifacts.genshinart.json
1+
ArtScanner/artifacts.genshinart.json
22
ArtScanner/artifacts.dat
33
ArtScanner/artifacts.dat.index
44
ArtScanner/artifacts.dat.lock
55
ArtScanner/artifacts.dat.tmp
66
**/__pycache__/**
7+
ArtScanner/build/**
8+
ArtScanner/dist/**
9+
ArtScanner/*.spec

ArtScanner/art_saver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ def add(self, info, art_img):
8989
transaction.commit()
9090
return True
9191
except Exception as e:
92-
raise
9392
return False
9493

9594
def exportGenshinArtJSON(self, path):

ArtScanner/build.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pyinstaller --onefile --add-data "mn_model.h5;." --hidden-import=h5py --hidden-import=h5py.defs --hidden-import=h5py.utils --hidden-import=h5py.h5ac --hidden-import=h5py._proxy --uac-admin -n ArtScanner main.py

ArtScanner/main.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def is_admin():
8181
saved = 0
8282
skipped = 0
8383
failed = 0
84+
star_dist = [0,0,0,0,0]
8485

8586
os.makedirs('artifacts', exist_ok=True)
8687

@@ -121,7 +122,9 @@ def artscannerCallback(art_img):
121122
global art_id
122123
global skipped
123124
global failed
125+
global star_dist
124126
info = ocr_model.detect_info(art_img)
127+
star_dist[info['star']-1] += 1
125128
if decodeValue(info['level'])<level_threshold:
126129
skipped += 1
127130
elif art_data.add(info, art_img):
@@ -150,11 +153,18 @@ def artscannerCallback(art_img):
150153
else:
151154
print("在最后点击位置未检测到圣遗物,自动终止")
152155
except Exception as e:
153-
raise
154156
print()
155157
print(f"因为\"{e}\"而意外停止扫描,将保存已扫描的圣遗物信息")
156158
if saved != 0:
157159
art_data.exportGenshinArtJSON('artifacts.genshinart.json')
158160
print(f'总计扫描了{skipped+saved}/{art_id}个圣遗物,保存了{saved}个到artifacts.genshinart.json,失败了{failed}个')
159161
print('无效识别/失败结果请到artifacts路径中查看')
162+
print('----------------------------')
163+
print('圣遗物星级分布:')
164+
print(f'5星:{star_dist[4]}')
165+
print(f'4星:{star_dist[3]}')
166+
print(f'3星:{star_dist[2]}')
167+
print(f'2星:{star_dist[1]}')
168+
print(f'1星:{star_dist[0]}')
169+
print('----------------------------')
160170
input('已完成,按回车退出')

ArtScanner/ocr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def extract_art_info(self, art_img):
9696

9797
def detect_star(self, art_img):
9898
star = art_img.crop([i*self.scale_ratio for i in Config.star_coords])
99-
cropped_star = self.crop(self.to_gray(star))
99+
cropped_star = self.crop(self.normalize(self.to_gray(star)))
100100
coef = cropped_star.shape[1]/cropped_star.shape[0]
101101
coef = coef/1.30882352+0.21568627
102102
return int(round(coef))

0 commit comments

Comments
 (0)