a *»´fã@s0ddlmZmZGdd„dƒZGdd„dƒZdS)é)ÚRectangleVisualizerÚTextVisualizerc@seZdZdd„Zdd„ZdS)ÚBoundingBoxVisualizercCs tƒ|_dS©N)rÚrectangle_visualizer)Úself©rúG/data1/chongzheng_p23/Projects/CatVTON-hf/densepose/vis/bounding_box.pyÚ__init__szBoundingBoxVisualizer.__init__cCs|D]}|j ||¡}q|Sr)rÚ visualize)rÚ image_bgrÚ boxes_xywhÚ bbox_xywhrrr r szBoundingBoxVisualizer.visualizeN©Ú__name__Ú __module__Ú __qualname__r r rrrr rsrc@seZdZddd„Zdd„ZdS)ÚScoredBoundingBoxVisualizerNcKs<|dur i}|duri}tfi|¤Ž|_tfi|¤Ž|_dSr)rÚvisualizer_bboxrÚvisualizer_score)rZbbox_visualizer_paramsZscore_visualizer_paramsÚkwargsrrr r s z$ScoredBoundingBoxVisualizer.__init__c Cs†|\}}t|ƒt|ƒks0Jd t|ƒt|ƒ¡ƒ‚t|ƒD]H\}}||}|j ||¡}d |¡}|d|df} |j ||| ¡}q8|S)NzFNumber of bounding boxes {} should be equal to the number of scores {}z{0:6.4f}ér)ÚlenÚformatÚ enumeraterr r) rr Z scored_bboxesr Z box_scoresÚiÚbox_xywhZscore_iZ score_txtÚ topleft_xyrrr r sÿ ÿþ z%ScoredBoundingBoxVisualizer.visualize)NNrrrrr rs rN)Úbaserrrrrrrr Ús