Babu's picture
initial commit (#1)
23123a6 verified
import cv2
def resize_image(img, scale_percent) :
# Calculate new size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
# Resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
return resized
def draw_box(img, result, class_list) :
# Get information from result
xyxy= result.boxes.xyxy.numpy()
confidence= result.boxes.conf.numpy()
class_id= result.boxes.cls.numpy().astype(int)
# Get Class name
class_name = [class_list[x] for x in class_id]
# Pack together for easy use
sum_output = list(zip(class_name, confidence,xyxy))
# Copy image, in case that we need original image for something
out_image = img.copy()
for run_output in sum_output :
# Unpack
label, con, box = run_output
# Choose color
box_color = (0, 0, 255)
text_color = (255,255,255)
# Draw object box
first_half_box = (int(box[0]),int(box[1]))
second_half_box = (int(box[2]),int(box[3]))
cv2.rectangle(out_image, first_half_box, second_half_box, box_color, 2)
# Create text
text_print = '{label} {con:.2f}'.format(label = label, con = con)
# Locate text position
text_location = (int(box[0]), int(box[1] - 10 ))
# Get size and baseline
labelSize, baseLine = cv2.getTextSize(text_print, cv2.FONT_HERSHEY_SIMPLEX, 1, 2)
# Draw text's background
cv2.rectangle(out_image
, (int(box[0]), int(box[1] - labelSize[1] - 10 ))
, (int(box[0])+labelSize[0], int(box[1] + baseLine-10))
, box_color , cv2.FILLED)
# Put text
cv2.putText(out_image, text_print ,text_location
, cv2.FONT_HERSHEY_SIMPLEX , 1
, text_color, 2 ,cv2.LINE_AA)
return out_image