spoof-detect / python /markers.py
Niv Sardi
import python
1a24a58
import os
import cv2
import argparse
import imtool
parser = argparse.ArgumentParser(description='shows YOLO markers')
parser.add_argument('pngs', metavar='img.png', type=str, nargs='+',
help='images to debug')
args = parser.parse_args()
if len(args.pngs) and os.path.isdir(args.pngs[0]):
args.pngs = [d.path for d in os.scandir(args.pngs[0])]
def process():
for i in args.pngs:
if i.endswith('txt'): continue
im = cv2.imread(i)
try:
assert(im.shape)
except AttributeError:
print(f'couldnt parse {i}')
continue
label = i.replace('images', 'labels').replace('.png', '.txt').replace('.jpg', '.txt')
print(i)
try:
results = imtool.read_centroids(label)
except FileNotFoundError:
continue
except Exception as e:
print(f'error handeling {i}', e)
continue
bbs = [r["box"].to_bounding_box(im.shape) for r in results]
for i,b in enumerate(bbs):
print(b)
c = (100, 255*i/len(bbs), 255*(1 - i/len(bbs)))
cv2.rectangle(im, b.start, b.end, c, 5)
cv2.imshow('result', im)
cv2.waitKey(0)
cv2.destroyAllWindows()
process()