mirror of
https://github.com/opencv/opencv.git
synced 2024-12-03 00:10:21 +08:00
71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import sys, os, os.path, glob, math, cv2
|
||
|
from datetime import datetime
|
||
|
from optparse import OptionParser
|
||
|
import re
|
||
|
|
||
|
start_templates = ["lbl", "pos", "occl"]
|
||
|
|
||
|
class Sample:
|
||
|
def __init__(self, l):
|
||
|
self
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
f = open("/home/kellan/datasets/caltech/set00/V004.txt")
|
||
|
person = re.compile("^lbl=\'person\'\s+str=(\d+)\s+end=(\d+)\s+hide=0$")
|
||
|
newobj = re.compile("^lbl=\'(\w+)\'\s+str=(\d+)\s+end=(\d+)\s+hide=0$")
|
||
|
pos = re.compile("^pos\s=(\[[((\d+\.+\d*)|\s+|\;)]*\])$")
|
||
|
nonarray = re.compile("\;\s+(?!\])|\s+(?!\])")
|
||
|
lastSemicolon = re.compile("\;\s+(?=\])")
|
||
|
qqq = re.compile("(?=\[)\b(?=\d*)")
|
||
|
|
||
|
goNext = 0
|
||
|
start = 0
|
||
|
end = 0
|
||
|
|
||
|
modelW = 32
|
||
|
modelH = 64
|
||
|
|
||
|
for l in f:
|
||
|
qq = newobj.match(l)
|
||
|
if qq is not None:
|
||
|
if qq.group(1) == "person":
|
||
|
goNext = 1
|
||
|
else:
|
||
|
goNext = 0
|
||
|
print qq.group(0), qq.group(1)
|
||
|
m = person.match(l)
|
||
|
if m is not None:
|
||
|
start = m.group(1)
|
||
|
end = m.group(2)
|
||
|
|
||
|
print m.group(0), start, end
|
||
|
else:
|
||
|
m = pos.match(l)
|
||
|
if m is not None:
|
||
|
if not goNext:
|
||
|
continue
|
||
|
strarr = re.sub(r"\s", ", ", re.sub(r"\;\s+(?=\])", "]", re.sub(r"\;\s+(?!\])", "],[", re.sub(r"(\[)(\d)", "\\1[\\2", m.group(1)))))
|
||
|
list = eval(strarr)
|
||
|
for idx, box in enumerate(list):
|
||
|
if (box[2] >= 32) or (box[3] >= 64):
|
||
|
x = box[0]
|
||
|
y = box[1]
|
||
|
w = box[2]
|
||
|
h = box[3]
|
||
|
|
||
|
ratio = w / h
|
||
|
neww = h / 2.0
|
||
|
offset = (w - neww) / 2.0
|
||
|
print "HERE is big!! ", box, ratio, offset
|
||
|
if (x + offset) > 0:
|
||
|
id = int(start) + idx
|
||
|
file = "/home/kellan/datasets/caltech/set00/V004.seq/I0%04d.jpg" % id # I00000.jpg
|
||
|
print file
|
||
|
img = cv2.imread(file)
|
||
|
cv2.rectangle(img, (int(x), int(y)), (int(x + w), int(y + h)), (0,255,0), 2)
|
||
|
cv2.imshow("sample", img)
|
||
|
cv2.waitKey(0)
|
||
|
|