feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors - Add release pre-flight check script - Add synonym generation, chunk processing scripts - Add face recognition, stamp search utilities
This commit is contained in:
58
scripts/crop_top_candidates.py
Normal file
58
scripts/crop_top_candidates.py
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/opt/homebrew/bin/python3.11
|
||||
"""
|
||||
Crop Top Candidates for Stamp
|
||||
"""
|
||||
|
||||
import cv2
|
||||
import os
|
||||
|
||||
UUID = "384b0ff44aaaa1f1"
|
||||
BASE_DIR = f"output/{UUID}/florence2_results"
|
||||
|
||||
# Top candidates based on Pink Area (Inverted Jenny Plane)
|
||||
CANDIDATES = [
|
||||
("scan_6756.jpg", 383, 150, 289, 244, "High Pink Area"),
|
||||
("scan_6790.jpg", 1084, 319, 126, 272, "Very High Pink Area"),
|
||||
("scan_6813.jpg", 1713, 26, 147, 294, "Highest Pink Area"),
|
||||
("scan_6832.jpg", 1664, 560, 256, 176, "High Pink Area"),
|
||||
("scan_6756.jpg", 1236, 28, 92, 152, "Secondary Candidate"),
|
||||
]
|
||||
|
||||
print("✂️ Cropping Top Stamp Candidates...")
|
||||
|
||||
for img_name, x, y, w, h, reason in CANDIDATES:
|
||||
img_path = os.path.join(BASE_DIR, img_name)
|
||||
if not os.path.exists(img_path):
|
||||
continue
|
||||
|
||||
img = cv2.imread(img_path)
|
||||
h_img, w_img, _ = img.shape
|
||||
|
||||
# Ensure coordinates are within image bounds
|
||||
x1 = max(0, x)
|
||||
y1 = max(0, y)
|
||||
x2 = min(w_img, x + w)
|
||||
y2 = min(h_img, y + h)
|
||||
|
||||
crop = img[y1:y2, x1:x2]
|
||||
out_name = f"top_candidate_{img_name.replace('.jpg', '')}_{x}_{y}.jpg"
|
||||
out_path = os.path.join(BASE_DIR, out_name)
|
||||
|
||||
cv2.imwrite(out_path, crop)
|
||||
print(f" ✅ Saved {out_name} (Reason: {reason})")
|
||||
|
||||
# Also save a marked version of the full image
|
||||
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 5)
|
||||
cv2.putText(
|
||||
img,
|
||||
f"STAMP? ({reason})",
|
||||
(x1, y1 - 10),
|
||||
cv2.FONT_HERSHEY_SIMPLEX,
|
||||
1,
|
||||
(0, 255, 0),
|
||||
2,
|
||||
)
|
||||
marked_name = f"marked_{img_name}"
|
||||
cv2.imwrite(os.path.join(BASE_DIR, marked_name), img)
|
||||
|
||||
print("🏁 Done. Please check the 'top_candidate' files.")
|
||||
Reference in New Issue
Block a user