圖像分割的mask有空洞怎么修補

分享一個對實例分割mask修補的方法,希望對大家有所幫助。

1. 這是我準備分割的圖片

2 分割結果

可以看到衣服部分有一些沒分割出來,二值化圖片能清晰看到衣服部分有些黑色未分出的地方。

3 補全mask區域

import cv2
import numpy as npdef fill_mask_hole(img):# 將輸入圖片二值化img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)_, mask= cv2.threshold(img, 250, 255, cv2.THRESH_BINARY)# 二值化圖片黑白反轉mask = 255-mask# 因為最下面有一塊黑色區域,沒完全被包圍。將最下面一行像素改成白色,保住黑色區域mask[-1,:] = 255# 尋找有多少孔洞contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 孔洞個數len_contour = len(contours)contour_list = []# 逐個補孔for i in range(len_contour):drawing = np.zeros_like(mask, np.uint8)  # create a black image# 根據孔洞范圍判斷需不需要補area = cv2.contourArea(contours[i])if area>1000: # 有大孔洞增加這個閾值continueimg_contour = cv2.drawContours(drawing, contours, i, (255, 255, 255), -1)contour_list.append(img_contour)out = sum(contour_list)# 對應上面mask[-1,:] = 255,將改的白邊改回來out[-1,:] = out[-2,:]return outimg1 = cv2.imread('test.jpg')
mask = fill_mask_hole(img1)
cv2.imwrite('mask1.jpg',mask)

4 結果圖mask1.jpg

ok,補好啦

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72972.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72972.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72972.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt 控件概述 QLabel

目錄 QLabel顯示類控件 label如何做到與窗口同步變化 邊框 Frame QLabel顯示類控件 ?? ?? textFormat :設置文件格式 ? Pixmap :標簽圖片 label如何做到與窗口同步變化 Qt中對應用戶的操作 : 事件和信號 拖拽窗口大小就會觸發…

詞頻統計 ccf-csp 2024-2-1

在學習了文本處理后,小 P 對英語書中的 n篇文章進行了初步整理。 具體來說,小 P將所有的英文單詞都轉化為了整數編號。 假設這 n 篇文章中共出現了 m個不同的單詞,則把它們從 1到 m進行編號。 這樣,每篇文章就簡化為了一個整數…

用爬蟲解鎖 Shopee 店鋪商品數據,開啟電商新洞察

在電商競爭白熱化的當下,Shopee 作為全球知名的電商平臺,匯聚了海量的商品與商機。對于電商從業者、數據分析師、創業者來說,精準掌握 Shopee 店鋪的商品信息,就如同手握一把開啟財富大門的鑰匙。而爬蟲技術,無疑是幫助…

k8s中的service解析

k8s中的service解析 在k8s中,我們可以通過pod來創建服務。 然而,當我們創建多個 Pod 來提供同一項服務時,直接通過 Pod IP 進行訪問會變得復雜且不可維護。因此,Kubernetes 提供了 Service 這一抽象概念,用于對外暴露…

git 命令回退版本

1、查看提交記錄 git log --oneline # 簡化的提交歷史&#xff08;推薦&#xff09; # 或 git log # 完整提交歷史2、版本回退 git reset --hard <commit-hash>3、如果已推送過代碼到遠程倉庫&#xff0c;需強制推送更新 git push -f

深度學習與傳統算法在人臉識別領域的演進:從Eigenfaces到ArcFace

一、傳統人臉識別方法的發展與局限 1.1 Eigenfaces&#xff1a;主成分分析的經典實踐 算法原理 Eigenfaces是基于主成分分析&#xff08;PCA&#xff09;的里程碑式方法。其核心思想是將人臉圖像視為高維向量&#xff0c;通過協方差矩陣計算特征向量&#xff08;即特征臉&…

串口接收不到數據,串口RX配置(f407),f103和f407的區別

問題 芯片&#xff1a;STM32F407&#xff0c;軟件&#xff1a;標準庫 使用串口時&#xff0c;直接把之前STM32F103的串口配置移植過來&#xff0c;同樣以串口4為例&#xff0c;代碼如下&#xff1a; STM32F103 UART4&#xff1a; void UART4_Configuration(uint32_t BaudRa…

淺分析 PE3R 感知高效的三維重建

"近期&#xff0c;二維到三維感知技術的進步顯著提升了對二維圖像中三維場景的理解能力。然而&#xff0c;現有方法面臨諸多關鍵挑戰&#xff0c;包括跨場景泛化能力有限、感知精度欠佳以及重建速度緩慢。為克服這些局限&#xff0c;我們提出了感知高效三維重建框架&#…

存算一體與存算分離:架構設計的深度解析與實現方案

隨著數據量的不斷增大和對計算能力的需求日益提高&#xff0c;存算一體作為一種新型架構設計理念&#xff0c;在大數據處理、云計算和人工智能等領域正逐步引起廣泛關注。在深入探討存算一體之前&#xff0c;我們需要先了解存儲和計算的基本概念&#xff0c;以及存算分離和存算…

匯編與反匯編:DEBUG 命令使用指南

前言 匯編語言是計算機底層編程語言&#xff0c;直接與 CPU 指令集對應。掌握匯編語言和調試工具&#xff08;如DEBUG&#xff09;是深入理解計算機工作原理的關鍵。本文將介紹匯編與反匯編的基本概念&#xff0c;并詳細講解如何使用 DEBUG 命令進行調試和內存操作。 目錄 一、…

數據分析的12個挑戰及其解決方法

俗話說得好“說起來容易做起來難。”數據分析對于風險管理者是極為重要的。我們可以利用數據分析結論&#xff0c;來為企業決策做有效協助&#xff0c;幫助企業改善財務狀況&#xff0c;提升企業業務銷售水平&#xff0c;幫助員工預測可能發生的問題&#xff0c;并協助監控企業…

棧/堆/static/虛表

在 C 里&#xff0c;棧空間主要用來存放局部變量、函數調用信息等。下面為你介紹棧空間在 C 里的運用方式。 1. 局部變量的使用 在函數內部定義的變量會被存于棧空間&#xff0c;當函數執行結束&#xff0c;這些變量會自動被銷毀。 #include <iostream>void exampleFu…

Vue keepalive學習用法

在Vue中&#xff0c;<keep-alive>的include屬性用于指定需要緩存的組件&#xff0c;其實現方式如下&#xff1a; 1. 基本用法 ? 字符串形式&#xff1a;通過逗號分隔組件名稱&#xff0c;匹配到的組件會被緩存。 <keep-alive include"ComponentA,ComponentB&…

搭建個人博客教程(Hexo)

如何快速搭建一套本地的博客系統呢&#xff1f;這里有一套gitNode.jsHexo的部署方案來進行解決。 安裝git Git 是一款免費開源的分布式版本控制系統&#xff0c;由 Linus Torvalds 于 2005 年為 Linux 內核開發設計。它通過本地倉庫和遠程倉庫實現代碼管理&#xff0c;支持分支…

手撕算法之`vector` 擴容、`string` 分割、鏈表翻轉

手寫常見操作:vector 擴容、string 分割、鏈表翻轉 (一)vector擴容 在 C++ 中,vector 的擴容機制是動態數組實現的核心特性,直接關系到性能和內存使用效率。以下是深入剖析: 1. 擴容觸發條件 vector<int> v; v.push_back(1); // 當 size() == capacity() 時觸發…

鴻蒙NEXT開發問題大全(不斷更新中.....)

目錄 問題1&#xff1a;鴻蒙NEXT獲取華為手機的udid ?問題2&#xff1a;[Fail]ExecuteCommand need connect-key? 問題3&#xff1a;測試時如何安裝app包 問題1&#xff1a;鴻蒙NEXT開發獲取華為手機的udid hdc -t "設備的序列號" shell bm get --udid 問題2&…

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目錄 一、文獻簡明&#xff08;zero&#xff09;二、快速預覽&#xff08;first&#xff09;1、標題分析2、作者介紹3、引用數4、摘要分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;分析 5、總結分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;…

ZMC600E,多核異構如何成就機器人精準控制?

ZMC600E主站控制器憑借其多核異構處理器的強大性能&#xff0c;實現了高算力與高實時性的完美平衡&#xff0c;讓機器人動作流暢、精準無誤。接下來&#xff0c;讓我們深入了解其內核結構的奧秘。 在ZMC600E主站控制器控制機器人的時候&#xff0c;可以精準的控制機器人執行各種…

一文掌握 PostgreSQL 的各種指令(PostgreSQL指令備忘)

引言 PostgreSQL 作為一款功能強大、開源的關系型數據庫管理系統&#xff08;RDBMS&#xff09;&#xff0c;以其高擴展性、SQL 標準兼容性以及豐富的功能特性&#xff0c;成為企業級應用的首選數據庫之一。無論是開發、運維還是數據分析&#xff0c;掌握 PostgreSQL 的核心指…

fastadmin后臺管理員日志指定方法不記錄

做的訂單提醒,只要在線會把日志自動存儲進去,這個又是每30s執行一次,數據庫沒多久就爆掉了,最終找到一個處理方法,可能不是最好的,僅供大家參考 具體位置: application/admin/model/AdminLog.php里面的$ignoreRegex方法 protected static $ignoreRegex [/^(.*)\/(selectpage…