关于图像分割项目的可视化脚本

这篇具有很好参考价值的文章主要介绍了关于图像分割项目的可视化脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言

之前实现了目标检测和图像分类任务的可视化脚本,本章将最后一个分割任务的可视化脚本实现

效果展示如下:

代码会在当前目录保存展示好的图片,从左到右依次为,原图、mask图、mask覆盖在原图的掩膜图

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

关于目标检测的可视化:

VOC:关于目标检测任务中,XML(voc格式)标注文件的可视化

YOLO :关于目标检测任务中,YOLO(txt格式)标注文件的可视化 

图像分类:图像分类任务的可视化脚本,生成类别json字典文件

2. 代码介绍

因为分割的数据格式问题,图像如何显示问题,可能会出现一些问题。

代码使用了好几种不同的分割数据集测试均可实现,可以保证大部分数据的可视化

具体的问题,在后文介绍

2.1 目录

数据摆放如下所示

图像放在images目录下,对应的GT图像放在masks文件下,这里的文件名是保持对应的,否则后续代码需要更改

show脚本放在data相同的路径

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

 

2.2 主函数

这里传入的root是images目录,这样random可以随机取出一张图片。根据目录的索引,自动找到图片对应的GT图像。

注:如果文件名不相同的话,需要自己在后面replace更换

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

这里的opacity 是掩膜的程度,0-1直接越小,效果越好

2.3 函数实现

这里运用的就是数字图像处理的内容,可以参考:数字图像处理

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

使用 PIL 打开图片,可以避免一些不必要的错误。cv的格式太严格了,不管是数据类型啊,还是通道,或者最后的np展示都需要相同的维度。而分割的GT一般都是8bit,本人调试很久,还是PIL打开方便

至于draw_image 函数,就是数字图像处理的绘制边框内容,因为matplotlib展示的时候会自动填色,这样可视化的效果更好,所以用matplotlib展示

2.4 结果展示

相同 opacity 展示

这里用绿色绘制边框,红色掩膜填充

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

不同opacity 展示

opacity = 0.5

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

opacity = 0.1

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

 

opacity = 0.9

关于图像分割项目的可视化脚本,# 关于 segmentation,目标跟踪,人工智能,计算机视觉

3. 完整代码

代码:文章来源地址https://www.toymoban.com/news/detail-820022.html

import cv2
import numpy as np
import os
import random
from PIL import Image
import matplotlib.pyplot as plt


# 将mask绘制在原图
def draw_image(im,ms,brg,opacity):
    image_mask = im.copy()
    contours, _ = cv2.findContours(ms, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)    # 查找轮廓
    image_mask = cv2.drawContours(image_mask, contours, -1, (0, 255, 0), 2)     # 绘制边界
    image_mask = cv2.fillPoly(image_mask, contours, color=brg)                  # 填充
    img_bgr = cv2.addWeighted(im, opacity, image_mask, 1 - opacity, 0)

    return im,ms,img_bgr[:,:,::-1]


def main(imagePath,labelPath,bgr,opacity):
    image = np.array(Image.open(imagePath).convert('RGB'))
    label = np.array(Image.open(labelPath).convert('L'))

    a,b,c = draw_image(image,label,bgr,opacity)

    plt.figure(figsize=(12,8))
    for index,i in enumerate((a,b,c)):
        plt.subplot(1,3,index+1)
        plt.imshow(i)

    plt.savefig('./result.png')
    # plt.show()


if __name__ == '__main__':
    root = './data/images'
    images_path = [os.path.join(root,i) for i in os.listdir(root)]

    r = random.randint(0,len(images_path)-1)
    img_path = images_path[r]           # 随机取出一张图片
    mask_path = img_path.replace('images','masks')

    # opacity 越小,掩膜效果越深
    main(imagePath=img_path, labelPath=mask_path,bgr=(0,0,255),opacity=0.5)

到了这里,关于关于图像分割项目的可视化脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Python和OpenCV批量可视化labelme分割标注结果

    【原创声明】 本文为博主原创文章,未经博主允许不得转载。 更多算法总结请关注我的博客:https://blog.csdn.net/suiyingy。         在计算机视觉领域中,图像分割是一项重要的任务,它可以将图像中的不同物体或区域进行像素级别的分割。而在图像分割任务中,人工标注数

    2024年04月16日
    浏览(38)
  • 分割结果可视化:怎么把标签mask轮廓显示在原图上

    训练完模型得到视盘视杯的分割结构之后,查看论文中的示例图,分割结果的显示为: 下面是可视化过程中遇到的一些问题 问题1: 怎么可视化npy文件 注意!!! 失败的原因 cv2显示的时候 图像必须是(h,w,c) 通道数在最后 否则出现报错 转换维度ima = image.transpose(1, 2, 0) 这里显

    2023年04月18日
    浏览(37)
  • 关于可视化大屏适配

    vw、vh方案: 原理:按照设计稿的尺寸,将px按比例计算转为vw和vh; 优点:不会存在失真情况、可以动态计算图表的宽高,字体等,灵活性较高,当屏幕比例跟 ui 稿不一致时,不会出现两边留白情况; 缺点:类似第三方echart图表都需要单独做字体、间距、位移的适配,比较

    2024年04月16日
    浏览(40)
  • 关于简单的数据可视化

    1. 安装数据可视化必要的openpyxl、pandas,matplotlib等软件包  使用清华源,命令如下: 安装成功后,可以进入下一步。 2. 这里新建一个Excel表格方便说明一下: 运行代码生成如下表格: 3. 对性别进行可视化操作--绘制饼图: 运行结果如下图所示:  4. 对姓名和年龄进行可视

    2024年02月03日
    浏览(42)
  • 基于Hadoop的电商广告点击数的分析与可视化(Shell脚本执行与大屏可视化设计)

    摘要 本项目需要部署的可以私信博主!!!!!!!!! 本文介绍了基于Hadoop的电商广告点击数的分析与可视化,以及相应的Shell脚本执行和大屏可视化设计。首先,我们介绍了Hadoop的基本原理和使用方法,包括如何安装和配置Hadoop集群。 然后,我们介绍了如何使用Hadoop

    2024年02月02日
    浏览(59)
  • 多模型图像特征可视化

            特征图可视化是指将网络中某一层的特征图可视化出来,以便观察网络在不同层次上学到的特征。卷积可视化可以帮助深度学习研究者更好地理解卷积的概念和原理,从而更好地设计和优化卷积神经网络。通过可视化,研究者可以更清晰地看到卷积运算中的每一个

    2024年01月17日
    浏览(37)
  • 图像中部分RGB矩阵可视化

    今天室友有个需求就是模仿下面这张图画个示意图: 大致就是把图像中的一小部分区域的RGB值可视化了一下。他居然不知道该怎么画,我寻思这不直接秒了。 其实就是先画三个主图,一个全部的,一个小范围内的,一个RGB值的表,然后画四根线就完事了。效果如下: 唯一要

    2024年01月16日
    浏览(41)
  • 记录--关于前端的音频可视化-Web Audio

    最近听音乐的时候,看到各种动效,突然好奇这些音频数据是如何获取并展示出来的,于是花了几天功夫去研究相关的内容,这里只是给大家一些代码实例,具体要看懂、看明白,还是建议大家大家结合相关API文档来阅读这篇文章。 参考资料地址:Web Audio API - Web API 接口参考

    2024年02月16日
    浏览(53)
  • 【Unity之IMGUI脚本封装】—编译模式下控件可视化及其封装

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :UnityUI篇实战 缺点1:无法在编译过程进行可视化调整 缺点2:无法分辨率自适应 此图可忽略 UML类图 性能优化代码 完整代码: 按钮封装代

    2024年02月15日
    浏览(61)
  • 【OpenCV实现图像:可视化目标检测框】

    目标检测框的可视化在计算机视觉和机器学习领域中是一项重要的任务,有助于直观地理解和评估目标检测算法的性能。通过使用Python和相关的图像处理库,可以轻松实现目标检测框的可视化。主要步骤包括读取图像数据、提取目标检测框的坐标信息,然后利用可视化工具在

    2024年02月04日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包