如何删除重叠边界框的背景?

问题描述

我正在使用Yolov5从视频中检测某些对象,检测到这些对象后,我想删除该对象的背景,而只是将对象变成黑色背景。

Such as this one

>

我设法在检测到的帧上执行此操作,但是我也想在没有检测到时将帧设为黑色。问题是,当我尝试使整个图像变黑时,会使所有图像完全变黑。 代码

                          if names[int(cls)]=="tennis racket":
        
                            plot_one_Box(xyxy,im0,label=label,color=colors[int(cls)],line_thickness=3)
                            x1,y1,x2,y2= int(xyxy[0]),int(xyxy[1]),int(xyxy[2]),int(xyxy[3])
                            w1=abs(x1-x2)
                            h1=abs(y1-y2)
                            
                            
                            
                            
                            img1=im0[y1:y1+h1,x1:x1+w1]
                            
                            im0=np.ones_like(im0)*0
                            im0[y1:y1+h1,x1:x1+w1]=img1
                          else:
                            im0=im0*0


我认为问题在于,在else函数中,当我尝试使整个图像变黑时,还会使边界框与我要检测的黑色对象重叠,从而删除检测到的对象。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)