欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+OpenCV繪制多instance的Mask圖像

 更新時間:2022年06月08日 14:03:23   作者:SpikeKing  
Mask圖像中,不同值表示不同的實例(instance)。本文將詳細為大家講講如何利用OpenCV繪制多instance的Mask圖像,感興趣的可以學習一下

目標: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)

    # 繪制顏色區(qū)域
    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圖像的資料請關注腳本之家其它相關文章!

相關文章

  • pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼

    pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼

    今天小編就為大家分享一篇pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 詳解python的函數(shù)遞歸與調用

    詳解python的函數(shù)遞歸與調用

    Python中的函數(shù)遞歸是一種函數(shù)調用自身的編程技術,遞歸可以用來解決問題,特別是那些可以分解為更小、相似子問題的問題,本文將給大家詳細的講解一下python的函數(shù)遞歸與調用,需要的朋友可以參考下
    2023-10-10
  • Django中的session用法詳解

    Django中的session用法詳解

    這篇文章主要介紹了Django中的session用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 一個Python案例帶你掌握xpath數(shù)據(jù)解析方法

    一個Python案例帶你掌握xpath數(shù)據(jù)解析方法

    xpath解析是最常用且最便捷高效的一種解析方式,通用性強。本文將通過一個Python爬蟲案例帶你詳細了解一下xpath數(shù)據(jù)解析方法,需要的可以參考一下
    2022-02-02
  • Pandas讀取并修改excel的示例代碼

    Pandas讀取并修改excel的示例代碼

    這篇文章主要介紹了Pandas讀取并修改excel的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Python 函數(shù)繪圖及函數(shù)圖像微分與積分

    Python 函數(shù)繪圖及函數(shù)圖像微分與積分

    今天小編就為大家分享一篇Python 函數(shù)繪圖及函數(shù)圖像微分與積分,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • flask上使用websocket的方法示例

    flask上使用websocket的方法示例

    本文主要介紹了flask上使用websocket的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Python使用pycharm導入pymysql教程

    Python使用pycharm導入pymysql教程

    這篇文章主要介紹了Python使用pycharm導入pymysql教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • python爬蟲將js轉化成json實現(xiàn)示例

    python爬蟲將js轉化成json實現(xiàn)示例

    這篇文章主要為大家介紹了python爬蟲將js轉化成json實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python+pygame簡單畫板實現(xiàn)代碼實例

    python+pygame簡單畫板實現(xiàn)代碼實例

    這篇文章主要介紹了python+pygame簡單畫板實現(xiàn)代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論