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

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

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

本文主要介紹了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是用來(lái)保存最后的結(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))
 
# 使用多線程進(jìn)行保存
num_cores = 10
parallel = Parallel(n_jobs=num_cores, backend='threading')
parallel(delayed(_write_mask)(mask[i, :, :], i) for i in range(0, num))

之前偷懶直接將項(xiàng)目里面的代碼段扣下來(lái)放在這里,誤導(dǎo)了大家,抱歉

這次我重新放一個(gè)完整版本,希望對(duì)大家有所幫助~~

代碼在python 3.7.6 和opencv-python 4.3.0下測(cè)試成功

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux系統(tǒng)下pip升級(jí)報(bào)錯(cuò)的解決方法

    linux系統(tǒng)下pip升級(jí)報(bào)錯(cuò)的解決方法

    這篇文章主要給大家介紹了關(guān)于linux系統(tǒng)下pip升級(jí)報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python tkinter實(shí)現(xiàn)屏保程序

    python tkinter實(shí)現(xiàn)屏保程序

    這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)屏保程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python使用xlrd和xlwt讀寫(xiě)Excel文件的實(shí)例代碼

    python使用xlrd和xlwt讀寫(xiě)Excel文件的實(shí)例代碼

    這篇文章主要介紹了python使用xlrd和xlwt讀寫(xiě)Excel文件的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試完整示例

    Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試完整示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試,涉及Python多線程并發(fā)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • Python中的GIL全局解釋器鎖多線程編程的隱患剖析

    Python中的GIL全局解釋器鎖多線程編程的隱患剖析

    Python作為一門(mén)強(qiáng)大而靈活的編程語(yǔ)言,吸引了大量的開(kāi)發(fā)者,然而,對(duì)于多線程編程來(lái)說(shuō),Python引入了一個(gè)概念——全局解釋器鎖(Global Interpreter Lock,簡(jiǎn)稱(chēng)GIL),它在一定程度上影響了多線程程序的性能,本文將深入探討GIL的概念,它對(duì)多線程編程的影響以及如何處理與繞過(guò)它
    2023-10-10
  • python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解

    python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解

    這篇文章主要介紹了python爬蟲(chóng)爬取筆趣網(wǎng)小說(shuō)網(wǎng)站過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python  Django中的apps.py的目的是什么

    python Django中的apps.py的目的是什么

    這篇文章主要介紹了python Django中的apps.py的目的是什么,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • pyspark?dataframe列的合并與拆分實(shí)例

    pyspark?dataframe列的合并與拆分實(shí)例

    這篇文章主要介紹了pyspark?dataframe列的合并與拆分實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Pycharm 2to3配置,python2轉(zhuǎn)python3方式

    Pycharm 2to3配置,python2轉(zhuǎn)python3方式

    這篇文章主要介紹了Pycharm 2to3配置,python2轉(zhuǎn)python3方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python實(shí)現(xiàn)五子棋游戲

    python實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論