广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python+OpenCV绘制多instance的Mask图像
  • 877
分享到

Python+OpenCV绘制多instance的Mask图像

2024-04-02 19:04:59 877人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目标:Mask中,不同值表示不同的实例(instance),在原图中,绘制不同的instance实例,每个实例用不同颜色表示,实例边界用白色表示。 源码: def generate_

目标:Mask中,不同值表示不同的实例(instance),在原图中,绘制不同的instance实例,每个实例用不同颜色表示,实例边界用白色表示。

源码

def generate_colors(n_colors, seed=47):
    """
    随机生成颜色
    """
    np.random.seed(seed)
    color_list = []
    for i in range(n_colors):
        color = (np.random.random((1, 3)) * 0.8).tolist()[0]
        color = [int(j * 255) for j in color]
        color_list.append(color)

    return color_list

def draw_mask_layers(image, mask_layers, mask_tk=1):
    """
    绘制多层的mask,包含mask的边界,mask中不同值表示不同的instance
    :param image: 3通道图像
    :param mask_layers: 多instance的mask
    :param mask_tk: 边界的厚度
    :return: 绘制边界框
    """
    img_copy = copy.copy(image)

    # 拆分Mask
    h, w = mask_layers.shape[:2]
    mask_id = np.unique(mask_layers)[1:]  # 获取Mask的ID, 0是背景
    masks = []
    for i in mask_id:
        m = np.zeros((h, w), dtype=bool)
        m[mask_layers == i] = True
        masks.append(m)

    # 绘制颜色区域
    color_list = generate_colors(len(masks))
    for idx, mask in enumerate(masks):
        img_copy[mask] = color_list[idx]  # 绘制颜色框

    image = cv2.addWeighted(image, 0.5, img_copy, 0.5, 0)  # 合并mask

    # 绘制边界,边界不需要透视效果
    for idx, mask in enumerate(masks):
        cnt_mask = np.zeros((h, w))
        cnt_mask[mask] = 255
        cnt_mask = cnt_mask.astype(np.uint8)
        contours, _ = cv2.findContours(cnt_mask, cv2.RETR_TREE, cv2.CHaiN_APPROX_SIMPLE)
        cv2.drawContours(image, contours, -1, (255, 255, 255), mask_tk)  # 绘制白色边界

    return image

原图:

Mask图像:

以上就是python+OpenCV绘制多instance的Mask图像的详细内容,更多关于Python OpenCV Mask图像的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python+OpenCV绘制多instance的Mask图像

本文链接: https://www.lsjlt.com/news/118615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python+OpenCV绘制多instance的Mask图像
    目标:Mask中,不同值表示不同的实例(instance),在原图中,绘制不同的instance实例,每个实例用不同颜色表示,实例边界用白色表示。 源码: def generate_...
    99+
    2022-11-11
  • OpenCV制作Mask图像掩码的案例
    目录一、掩膜(mask)二、案例1.效果图2. 源码一、掩膜(mask) 在有些图像处理的函数中有的参数里面会有mask参数,即此函数支持掩膜操作,首先何为掩膜以及有什么用,如下:数...
    99+
    2023-02-16
    OpenCV Mask图像掩码 Mask掩码 OpenCV Mask掩码
  • OpenCV 图像绘制的实现
    目录+直线绘制圆形绘制矩形绘制椭圆型绘制自定义形状绘制文本+直线绘制 参数解析:(图像矩阵,直线起始坐标, 直线终止坐标、颜色、线条厚度) import cv2 import n...
    99+
    2022-11-12
  • Python+OpenCV实现在图像上绘制矩形
    话不多说,直接上代码 import copy import cv2 import numpy as np WIN_NAME = 'draw_rect' class Rec...
    99+
    2022-11-13
  • OpenCV图像轮廓的绘制方法
    本文实例为大家分享了检测几何图形轮廓和检测花朵图形轮廓,供大家参考,具体内容如下 OpenCV绘制图像轮廓 绘制轮廓的一般步骤: 1、读取图像 image = cv2.imrea...
    99+
    2022-11-12
  • Python+OpenCV如何实现在图像上绘制矩形
    小编给大家分享一下Python+OpenCV如何实现在图像上绘制矩形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!代码import copyimport cv2import numpy&nbs...
    99+
    2023-06-29
  • python opencv 找出图像中的最大轮廓并填充(生成mask)
    本文主要介绍了python opencv 找出图像中的最大轮廓并填充,分享给大家,具体如下: import cv2 import numpy as np from PIL imp...
    99+
    2022-11-11
  • python数字图像处理图像的绘制详解
    目录正文一、用figure函数和subplot函数分别创建主窗口与子图二、用subplots来创建显示窗口与划分子图三、其它方法绘图并显示正文 实际上前面我们就已经用到了图像的绘制,...
    99+
    2022-11-11
  • 怎么用Python的Pyecharts绘制图像
    本篇内容介绍了“怎么用Python的Pyecharts绘制图像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:Echarts 是百度开源...
    99+
    2023-06-29
  • Python+Matplotlib绘制3D图像的示例详解
    目录1. 绘制3D柱状图2. 绘制3D曲面图示例1示例23.绘制3D散点图4. 绘制3D曲线图1. 绘制3D柱状图 绘制3D柱状图使用的是axes3d.bar()方法。 可能跟我们中...
    99+
    2022-11-10
  • python数字图像处理之基本图形的绘制
    目录引言1、画线条2、画圆3、多边形4、椭圆5、贝塞儿曲线6、画空心圆7、空心椭圆引言 图形包括线条、圆形、椭圆形、多边形等。 在skimage包中,绘制图形用的是draw模块,不要...
    99+
    2022-11-11
  • python多次绘制条形图的方法
    本文实例为大家分享了python绘制直方图的具体代码,供大家参考,具体内容如下 运行结果如下 代码如下 from matplotlib import pyplot as plt ...
    99+
    2022-11-10
  • Python+Matplotlib绘制双y轴图像的示例代码
    目录双Y轴图简介实现思路实现代码样式一样式二双Y轴图简介  双Y轴图顾名思义就是在一个图里有两个Y轴。这种图形主要用来展示两个因变量和一个自变量的关系并且两个因变量的数值单...
    99+
    2022-11-10
  • Python+matplotlib绘制多子图的方法详解
    目录本文速览1、matplotlib.pyplot api 方式添加子图2、面向对象方式添加子图3、matplotlib.pyplot add_subplot方式添加子图4、matp...
    99+
    2022-11-11
  • Python绘制多因子柱状图的实现示例
    目录背景介绍软件介绍绘图教程最后背景介绍 R和Python作为两个开源、且容易上手的数据分析和绘图工具,在科研中应用的比较广泛。 在接下来的日子,我们围绕Python进行绘图和数据分...
    99+
    2022-11-11
  • Python实现批量绘制遥感影像数据的直方图
    本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法。 首先,明确一下本文需要实现的需求:现需对多幅栅格数据文件进行依据其像元数值的直方图绘制,具体绘制内容...
    99+
    2023-02-27
    Python批量绘制直方图 Python绘制直方图 Python直方图
  • 基于python,Matplotlib绘制函数的等高线与三维图像
    目录1. 网格点2. 等高线3. 三维图像本篇文章记录一下函数的等高线及其三维图像的可视化方法。 本例绘制的函数为: 1. 网格点   在绘制曲线之前,先了解一...
    99+
    2022-11-13
  • Python实现批量读取HDF多波段栅格数据并绘制像元直方图
    本文介绍基于Python语言gdal模块,实现多波段HDF栅格图像文件的读取、处理与像元值可视化(直方图绘制)等操作。 另外,基于gdal等模块读取.tif格式栅格图层文件的方法可以...
    99+
    2023-03-01
    Python读取HDF多波段栅格数据 Python HDF多波段栅格数据 Python 绘制像元直方图
  • Python如何实现批量绘制遥感影像数据的直方图
    这篇文章主要介绍“Python如何实现批量绘制遥感影像数据的直方图”,在日常操作中,相信很多人在Python如何实现批量绘制遥感影像数据的直方图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实...
    99+
    2023-07-05
  • 如何基于python和Matplotlib绘制函数的等高线与三维图像
    这篇文章主要介绍了如何基于python和Matplotlib绘制函数的等高线与三维图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本例绘制的函数为:1. 网格点&e...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作