Python+OpenCV繪制多instance的Mask圖像
目標(biāo):Mask中,不同值表示不同的實(shí)例(instance),在原圖中,繪制不同的instance實(shí)例,每個(gè)實(shí)例用不同顏色表示,實(shí)例邊界用白色表示。
源碼:
def generate_colors(n_colors, seed=47): """ 隨機(jī)生成顏色 """ 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圖像的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV Mask圖像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pandas實(shí)現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼
今天小編就為大家分享一篇pandas實(shí)現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02一個(gè)Python案例帶你掌握xpath數(shù)據(jù)解析方法
xpath解析是最常用且最便捷高效的一種解析方式,通用性強(qiáng)。本文將通過(guò)一個(gè)Python爬蟲(chóng)案例帶你詳細(xì)了解一下xpath數(shù)據(jù)解析方法,需要的可以參考一下2022-02-02Python 函數(shù)繪圖及函數(shù)圖像微分與積分
今天小編就為大家分享一篇Python 函數(shù)繪圖及函數(shù)圖像微分與積分,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Python使用pycharm導(dǎo)入pymysql教程
這篇文章主要介紹了Python使用pycharm導(dǎo)入pymysql教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09python爬蟲(chóng)將js轉(zhuǎn)化成json實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python爬蟲(chóng)將js轉(zhuǎn)化成json實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05python+pygame簡(jiǎn)單畫(huà)板實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了python+pygame簡(jiǎn)單畫(huà)板實(shí)現(xiàn)代碼實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12