chore(docs): document ScoreExtractor tiling and refactor debug scripts (#563)

This commit is contained in:
2026-03-29 17:57:40 +09:00
parent 39b55f2e9f
commit ac0c098259
698 changed files with 141180 additions and 195 deletions

View File

@@ -0,0 +1,41 @@
import sys
sys.path.append(r"C:\Users\Certes\Desktop\guitar_score")
import cv2
import easyocr
import numpy as np
import os
from youtube_tab_to_pdf import extract_frames, extract_unique_scroll
video_file = r"C:\Users\Certes\Desktop\guitar_score\output\サカナクション/新宝島(エレキギターTAB) 難易度★★★ sakanaction shintakarajima.mp4"
print("Extracting frames...")
frames = extract_frames(video_file, fps=2)
print("Running pipeline extraction...")
unique = extract_unique_scroll(frames, threshold=0.95)
print("Initializing OCR...")
reader = easyocr.Reader(['en'])
print(f"Generated {len(unique)} chunks.")
detect_log = []
for i, page in enumerate(unique):
# Image is A4 width
# We want to OCR the top 150 pixels of the whole chunk to find measure numbers
h, w = page.shape[:2]
top_area = page[:min(200, h), :]
results = reader.readtext(top_area)
# filter for numbers
nums = []
for (bbox, text, prob) in results:
t = ''.join(filter(str.isdigit, text))
if t:
nums.append(int(t))
print(f"Page {i} measure numbers detected: {nums}")
detect_log.append(nums)
cv2.imwrite(f"output/verify_chunk_{i}.jpg", page)
if i > 5:
break