亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python opencv 找出圖像中的最大輪廓并填充(生成mask)

 更新時間:2021年03月12日 10:52:22   作者:深山里的小白羊  
這篇文章主要介紹了python opencv 找出圖像中的最大輪廓并填充(生成mask),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文主要介紹了python opencv 找出圖像中的最大輪廓并填充,分享給大家,具體如下:

import cv2
import numpy as np
from PIL import Image
 
from joblib import Parallel
from joblib import delayed
# Parallel 和 delayed是為了使用多線程處理
# 使用前需要安裝joblib:pip install joblib
 
# img_stack的shape為:num, h, w
# 是三維的圖像,可以理解為是num張二維的圖像組成
# mask是用來保存最后的結(jié)果的
mask = np.ones_like(img_stack)
for i in range(num):
  # 閾值化
  _, binaryzation = cv2.threshold(img_stack[i], 5, 255, cv2.THRESH_BINARY_INV)
  # 找到所有的輪廓
  contours, _ = cv2.findContours(binaryzation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
  area = []
  # 找到最大的輪廓
  for k in range(len(contours)):
    area.append(cv2.contourArea(contours[k]))
  max_idx = np.argmax(np.array(area))
  # cv2.fillContexPoly(mask[i], contours[max_idx], 0)
  # 填充最大的輪廓
  cv2.drawContours(mask[i], contours, max_idx, 0, cv2.FILLED)
  del area 
 
 
# 保存
def _write_mask(mask, i):
  Image.fromarray(mask.astype(np.uint8)*255).save(os.path.join(path, 'm%d.png' % i))
 
# 使用多線程進行保存
num_cores = 10
parallel = Parallel(n_jobs=num_cores, backend='threading')
parallel(delayed(_write_mask)(mask[i, :, :], i) for i in range(0, num))

之前偷懶直接將項目里面的代碼段扣下來放在這里,誤導了大家,抱歉

這次我重新放一個完整版本,希望對大家有所幫助~~

代碼在python 3.7.6 和opencv-python 4.3.0下測試成功

import cv2
import numpy as np
 
# 以灰度方式讀取圖像
img = cv2.imread('img.png', cv2.IMREAD_GRAYSCALE)
mask = img.copy()
 
# 二值化,100為閾值,小于100的變?yōu)?55,大于100的變?yōu)?
# 也可以根據(jù)自己的要求,改變參數(shù):
# cv2.THRESH_BINARY
# cv2.THRESH_BINARY_INV
# cv2.THRESH_TRUNC
# cv2.THRESH_TOZERO_INV
# cv2.THRESH_TOZERO
_, binaryzation = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY_INV)
 
# 找到所有的輪廓
contours, _ = cv2.findContours(binaryzation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
 
area = []
 
# 找到最大的輪廓
for k in range(len(contours)):
	area.append(cv2.contourArea(contours[k]))
max_idx = np.argmax(np.array(area))
 
# 填充最大的輪廓
mask = cv2.drawContours(mask, contours, max_idx, 0, cv2.FILLED)
 
# 保存填充后的圖像
cv2.imwrite('masked.png', mask)

輸入圖像:

輸出圖像:

到此這篇關(guān)于python opencv 找出圖像中的最大輪廓并填充(生成mask)的文章就介紹到這了,更多相關(guān)opencv最大輪廓內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?GUI布局工具Tkinter入門之旅

    Python?GUI布局工具Tkinter入門之旅

    這篇文章主要為大家介紹了Python?GUI布局工具Tkinter的基礎(chǔ),Tkinter?作為?Python?的標準庫,是非常流行的?Python?GUI?工具,同時也是非常容易學習的,今天我們就來開啟?Tkinter的入門之旅
    2022-08-08
  • python使用openCV遍歷文件夾里所有視頻文件并保存成圖片

    python使用openCV遍歷文件夾里所有視頻文件并保存成圖片

    這篇文章主要介紹了python使用openCV遍歷文件夾里所有視頻文件并保存成圖片,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-01-01
  • Django實現(xiàn)前臺上傳并顯示圖片功能

    Django實現(xiàn)前臺上傳并顯示圖片功能

    這篇文章主要介紹了Django實現(xiàn)前臺上傳并顯示圖片功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 基于python實現(xiàn)雙向鏈表

    基于python實現(xiàn)雙向鏈表

    這篇文章主要為大家詳細介紹了基于python實現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 巧用python和libnmapd,提取Nmap掃描結(jié)果

    巧用python和libnmapd,提取Nmap掃描結(jié)果

    本文將會講述一系列如何使用一行代碼解析 nmap 掃描結(jié)果,其中會在 Python 環(huán)境中使用到 libnmap 里的 NmapParser 庫,這個庫可以很容易的幫助我們解析 nmap 的掃描結(jié)果
    2016-08-08
  • Python?實現(xiàn)圖像合成微縮效果

    Python?實現(xiàn)圖像合成微縮效果

    合成微縮是一個使真實大小物體照片看起來像微縮模型照片的過程,也稱為 Diorama Effect/Fillusion,照片的模糊部分模擬了通常在特寫攝影中通常遇到的近景深度,從而使場景看起來比實際場景小得多,這篇文章主要介紹了Python?合成微縮效果,需要的朋友可以參考下
    2023-03-03
  • Python Django請求和響應對象詳解

    Python Django請求和響應對象詳解

    這篇文章主要給大家介紹了關(guān)于django的請求和響應對象,文中通過示例代碼介紹的非常詳細,對大家學習或者使用django具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • python中字符串比較使用is、==和cmp()總結(jié)

    python中字符串比較使用is、==和cmp()總結(jié)

    在Python中比較字符串最好是使用簡單邏輯操作符,今天為大家講解一下is、==和cmp()使用總結(jié)
    2018-03-03
  • 詳解Python之數(shù)據(jù)序列化(json、pickle、shelve)

    詳解Python之數(shù)據(jù)序列化(json、pickle、shelve)

    本篇文章主要介紹了Python之數(shù)據(jù)序列化,本節(jié)要介紹的就是Python內(nèi)置的幾個用于進行數(shù)據(jù)序列化的模塊,有興趣的可以了解一下。
    2017-03-03
  • python excel轉(zhuǎn)換csv代碼實例

    python excel轉(zhuǎn)換csv代碼實例

    這篇文章主要介紹了python excel轉(zhuǎn)換csv代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08

最新評論