计算IOU,切片图片等。
ai-tool的Python项目详细描述
人工智能工具
人工智能工具
切片图片
fromai_tool.img_slideimportyield_sub_img# yield the sub image from the jpgforbbox,sub_imginyield_sub_img("test.jpg",0,0,180,60):clip="-".join([str(x)forxinbbox])print("sub img:{}".format(clip))cv2.imshow(clip,sub_img)cv2.waitKey(0)
IOU
计算拖车箱的IOU,
示例框11、2、101、102。位置(1,2)左上,位置(101102)右下。
fromai_tool.bboximportBBoxbbox1=BBox([1,2,101,102])bbox2=BBox([11,12,121,122])iou=bbox1/bbox2print("iou",iou)assertiou>0.5print('box1 S is',bbox1.S)print('box1 & box2',bbox1&bbox2)print('box1 == box2',bbox1==bbox2)print('merge box1 + box2',bbox1+bbox2)print('merge box1 | box2',bbox1|bbox2)
结果是:
iou 0.5785714285714286 box1 S is 10000 box1 & box2 [11, 12, 101, 102]box1== box2 True merge box1 + box2 [1, 2, 121, 122] merge box1 | box2 [1, 2, 121, 122]
多bbox操作
fromai_tool.bboximportBBoxes,BBoxbb1=BBoxes(iou_thresh=0.6)bb2=BBoxes()bb1.append([1,2,101,102])bb1.append([1000,2,1101,102])bb2.append([11,12,111,112])bb2.append([1,1002,101,1102])# judge the bbox in bb1print("[5, 5, 100, 100] in bb1",BBox([5,5,100,100])inbb1)print("[100, 5, 200, 100] in bb1",BBox([100,5,200,100])inbb1)# bb1 & bb2print("bb1 & bb2",bb1&bb2)print("bb1 - bb2",bb1-bb2)print("bb2 - bb1",bb2-bb1)
结果是
[5, 5, 100, 100] in bb1 True [100, 5, 200, 100] in bb1 False bb1 & bb2 [[1, 2, 101, 102]] bb1 - bb2 [[1000, 2, 1101, 102]] bb2 - bb1 [[1, 1002, 101, 1102]]