当前位置: 首页 > news >正文

网站建设与管理学校vs做网站开发

网站建设与管理学校,vs做网站开发,响应式网站技术,陕西省住房和建设厅官网文章目录 概要画框函数代码实现标签美化角点美化透明效果小结 概要 目标检测框的可视化在计算机视觉和机器学习领域中是一项重要的任务#xff0c;有助于直观地理解和评估目标检测算法的性能。通过使用Python和相关的图像处理库#xff0c;可以轻松实现目标检测框的可视化。… 文章目录 概要画框函数代码实现标签美化角点美化透明效果小结 概要 目标检测框的可视化在计算机视觉和机器学习领域中是一项重要的任务有助于直观地理解和评估目标检测算法的性能。通过使用Python和相关的图像处理库可以轻松实现目标检测框的可视化。主要步骤包括读取图像数据、提取目标检测框的坐标信息然后利用可视化工具在图像上绘制这些框。Matplotlib是一个常用的可视化库其pyplot模块提供了方便的函数来绘制图像和图形。通过结合目标检测算法的输出和Matplotlib的功能可以创建一个直观且易于理解的图像展示图像中目标的位置和边界框。 常见的目标检测框的输出. 左上为常用的不带标签的输出框,右上为YOLO系列美化带标签后的矩形框,左下为四个角点美化后的矩形框,右下为带标签的角点美化矩形框. 画框函数 在OpenCV中通常使用cv2.rectangle函数来绘制矩形框该函数的一般形式如下 cv2.rectangle(image, start_point, end_point, color, thickness)这里是函数的参数解释 image: 输入图像 start_point: 矩形框左上角点的坐标 end_point: 矩形框右下角点的坐标 color: 矩形框的颜色默认使用BGR顺序表示 thickness: 线的粗细其中 -1 代表填充整个矩形 通过调用这个函数可以在图像上绘制矩形框用于突显目标或标记检测结果。 代码实现 用python来实现上述示例中的相应的画框效果. 1读入图像 首先我们来读入一副彩色图像并画框 import cv2img_name img_6.png img cv2.imread(img_name) box [ 25, 43,200,180, sdq] box_color (255,0,255) cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), colorbox_color, thickness2) cv2.imshow(Image with Rectangle, img) cv2.waitKey(0) cv2.destroyAllWindows()box [ 20, 25,80,200, “sdq”] 在这里box 是一个列表包含了五个元素 20矩形框的左上角 x 坐标。 25矩形框的左上角 y 坐标。 80矩形框的右下角 x 坐标。 200矩形框的右下角 y 坐标。 sdq一个标签表示矩形框的标识或类别。结果如下: 标签美化 接下来来给矩形框添加标签,观察上述画图函数,注意最后一个参数thickness,如果此值等于-1,那么将对矩形框执行填充效果。 标签美化代码 def draw_label_type(draw_img,bbox,label_color):label str(bbox[-1])labelSize cv2.getTextSize(label 0, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 2)[0]if bbox[1] - labelSize[1] - 3 0:cv2.rectangle(draw_img,(bbox[0], bbox[1] 2),(bbox[0] labelSize[0], bbox[1] labelSize[1] 3),colorlabel_color,thickness-1) )cv2.putText(draw_img, label,(bbox[0], bbox[1] labelSize 3),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0, 0, 0),thickness1)else:cv2.rectangle(draw_img,(bbox[0], bbox[1] - labelSize[1] - 3),(bbox[0] labelSize[0], bbox[1] - 3),colorlabel_color,thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] - 3),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0, 0, 0),thickness1)使用代码 import cv2def draw_label_type(draw_img, bbox, label_color):label str(bbox[4])labelSize cv2.getTextSize(label 0, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 2)[0]if bbox[1] - labelSize[1] - 3 0:cv2.rectangle(draw_img,(bbox[0], bbox[1]),(bbox[0] labelSize[0], bbox[1] labelSize[1]),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] labelSize[1]),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)else:cv2.rectangle(draw_img,(bbox[0], bbox[1] - labelSize[1] - 3),(bbox[0] labelSize[0], bbox[1] - 3),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] - 3),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)img_name img_6.png img cv2.imread(img_name) box [25, 43, 200, 180, sdq] box_color (255, 0, 255) cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), colorbox_color, thickness2)draw_label_type(img, box, label_color(255, 255, 255)) # 添加标签cv2.imshow(Image with Rectangle, img) cv2.waitKey(0) cv2.destroyAllWindows() 角点美化 上述添加完标签后,由于标签框和目标矩形框颜色一致,边界处不太容易区分,这里添加对角点美化的代码。 def draw_box_corner(draw_img,bbox,length,corner_color):# Top Leftcv2.line(draw_img, (bbox[0], bbox[1]), (bbox[0] length, bbox[1]), corner_color, thickness3)cv2.line(draw_img, (bbox[0], bbox[1]), (bbox[0], bbox[1] length), corner_color, thickness3)# Top Rightcv2.line(draw_img, (bbox[2], bbox[1]), (bbox[2] - length, bbox[1]), corner_color, thickness3)cv2.line(draw_img, (bbox[2], bbox[1]), (bbox[2], bbox[1] length), corner_color, thickness3)# Bottom Leftcv2.line(draw_img, (bbox[0], bbox[3]), (bbox[0] length, bbox[3]), corner_color, thickness3)cv2.line(draw_img, (bbox[0], bbox[3]), (bbox[0], bbox[3] - length), corner_color, thickness3)# Bottom Rightcv2.line(draw_img, (bbox[2], bbox[3]), (bbox[2] - length, bbox[3]), corner_color, thickness3)cv2.line(draw_img, (bbox[2], bbox[3]), (bbox[2], bbox[3] - length), corner_color, thickness3)相应的相应的参数含义如下: draw_img: 输入图像 bbox: 目标检测框 形式(x1,y1,x2,y2) length: 直线长度 corner_color 直线颜色 完整融合代码 import cv2def draw_label_type(draw_img, bbox, label_color):label str(bbox[4])labelSize cv2.getTextSize(label 0, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 2)[0]if bbox[1] - labelSize[1] - 3 0:cv2.rectangle(draw_img,(bbox[0], bbox[1]),(bbox[0] labelSize[0], bbox[1] labelSize[1]),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] labelSize[1]),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)else:cv2.rectangle(draw_img,(bbox[0], bbox[1] - labelSize[1] - 3),(bbox[0] labelSize[0], bbox[1] - 3),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] - 3),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)def draw_box_corner(draw_img, bbox, length, corner_color):# Top Leftcv2.line(draw_img, (bbox[0], bbox[1]), (bbox[0] length, bbox[1]), corner_color, thickness3)cv2.line(draw_img, (bbox[0], bbox[1]), (bbox[0], bbox[1] length), corner_color, thickness3)# Top Rightcv2.line(draw_img, (bbox[2], bbox[1]), (bbox[2] - length, bbox[1]), corner_color, thickness3)cv2.line(draw_img, (bbox[2], bbox[1]), (bbox[2], bbox[1] length), corner_color, thickness3)# Bottom Leftcv2.line(draw_img, (bbox[0], bbox[3]), (bbox[0] length, bbox[3]), corner_color, thickness3)cv2.line(draw_img, (bbox[0], bbox[3]), (bbox[0], bbox[3] - length), corner_color, thickness3)# Bottom Rightcv2.line(draw_img, (bbox[2], bbox[3]), (bbox[2] - length, bbox[3]), corner_color, thickness3)cv2.line(draw_img, (bbox[2], bbox[3]), (bbox[2], bbox[3] - length), corner_color, thickness3)img_name img_6.png img cv2.imread(img_name) box [25, 43, 200, 180, sdq] box_color (255, 0, 255) cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), colorbox_color, thickness2)draw_label_type(img, box, label_color(255, 255, 255)) # 添加标签 draw_box_corner(img, box, length10, corner_color(0, 255, 0)) # 添加对角点cv2.imshow(Image with Rectangle, img) cv2.waitKey(0) cv2.destroyAllWindows() 透明效果 通过cv2.rectangle 函数设置 thickness参数 ,可以得到填充后的图像,进而利用opencv中的 cv2.add_weight 函数可以实现透明效果自行尝试。 利用add_weight 函数对上面两副图像进行加权. 如下: alpha 0.8 gamma 0 out_img cv2.addWeighted(img,alpha,draw_img,1-alpha,gamma) 完整代码 import cv2def draw_label_type(draw_img, bbox, label_color):label str(bbox[4])labelSize cv2.getTextSize(label 0, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 2)[0]if bbox[1] - labelSize[1] - 3 0:cv2.rectangle(draw_img,(bbox[0], bbox[1]),(bbox[0] labelSize[0], bbox[1] labelSize[1]),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] labelSize[1]),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)else:cv2.rectangle(draw_img,(bbox[0], bbox[1] - labelSize[1] - 3),(bbox[0] labelSize[0], bbox[1] - 3),colorlabel_color, thickness-1)cv2.putText(draw_img, label,(bbox[0], bbox[1] - 3),cv2.FONT_HERSHEY_SIMPLEX, 0.5,(0, 0, 0), thickness1)img_name img_6.png img cv2.imread(img_name) box [25, 43, 200, 180, sdq] box_color (255, 0, 255) cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), colorbox_color, thickness2)draw_img img.copy() draw_label_type(draw_img, box, label_color(255, 255, 255)) # 添加标签alpha 0.8 gamma 0 out_img cv2.addWeighted(img, alpha, draw_img, 1 - alpha, gamma)cv2.imshow(Image with Transparent Rectangle, out_img) cv2.waitKey(0) cv2.destroyAllWindows() 小结 在目标检测中优化矩形框的标签和角点可以提高可视化效果和用户理解。透明效果的应用则使得目标框融入原始图像不影响图像的主体内容提高了整体呈现的美观性。
http://wiki.neutronadmin.com/news/135295/

相关文章:

  • 建站资源js 网站简体繁体
  • 红花岗区建设局网站常用的设计软件有哪些
  • 电商网站建设推荐阿里巴巴网站域名
  • 管理系统网站免费下载百度app最新版本
  • 网站空间哪个好品牌建设总结
  • 老鹰主机 建wordpress重庆百度整站优化
  • 做旅游网站的任务成都网站建设网
  • amp 网站开发网站做支付系统
  • 什么叫个人网站软件网站查询域名ip查询
  • 青海网站开发建设wordpress检查元素
  • wordpress 图片站模板互联网设计师leader
  • 千牛商家版网站建设网页小游戏网址
  • 有哪些是外国人做的网站北京专业网站建设公司
  • 天猫建设网站的目的劳务合同免费模板下载
  • 建站必须要域名吗网上教育培训机构
  • 哈尔滨网站建设多少钱搭建个人博客wordpress
  • 实业公司网站模板网络营销网站建设存在问题
  • 长春移动网站建设抖音网站开发
  • 怎么样推广一个网站网上室内设计师培训
  • 孝感58同城网站建设浙江省人才网官方网站建设厅招聘
  • 公司做手机网站建设网页浏览器怎么卸载
  • 网站建设佰金手指科杰二八交互式多媒体网站开发
  • 教育网站模板建设品牌公司网站
  • wordpress+视频站模版邢台专业做网站费用
  • 网站查询域名ip解析益阳网站制作公司
  • 定做网站建设网站建设与开发是什么岗位
  • 成都 网站建设 公司哪家好深圳公司标牌制作
  • 建设牌安全带官方网站北京市公司网站制作
  • 天水市建设银行官方网站wordpress怎么切换成中文的
  • 太原怎样优化网站建设安徽建工招采平台