超詳細注釋之OpenCV制作圖像Mask

 更新時間:2021年09月10日 10:08:50   作者:程序媛一枚~  
這篇文章主要介紹了OpenCV制作圖像Mask,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

這篇博客將介紹如何使用OpenCV制作Mask圖像掩碼。使用位運算和圖像掩碼允許我們只關注圖像中感興趣的部分,截取出任意區域的ROIs。

應用:

圖像感興趣區域的截取;

圖像融合:構建透明的疊加層;

1. 效果圖

原始圖如下:(老九門穎寶&佛爺~)

在這里插入圖片描述

矩形掩碼 VS 效果圖如下:(使用矩形掩碼,只提取圖像中包含人物的區域,而忽略其他區域)

在這里插入圖片描述

圓形掩碼 VS 效果圖如下:(圓形掩模顯示在左邊,掩模的應用在右邊。實質上可以使用任意形狀的掩碼圖像,如矩形、圓、線、多邊形等從圖像中提取區域)

在這里插入圖片描述

2. 源碼

# 分別使用矩形和圓形遮罩從圖像中提取身體和臉部。
# USAGE
# python opencv_masking.py

import argparse

import cv2
# 導入必要的包
import numpy as np

# 構建命令行參數及解析
# --image 輸入圖像路徑
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str, default="yc.jpg",
                help="path to the input image")
args = vars(ap.parse_args())

# 加載原始輸入圖像,并展示
image = cv2.imread(args["image"])
cv2.imshow("Original", image)

# 掩碼和原始圖像具有相同的大小,但是只有倆種像素值:0(背景忽略)、255(前景保留)
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.rectangle(mask, (30, 90), (280, 440), 255, -1)
cv2.imshow("Rectangular Mask", mask)

# 應用掩碼圖像
masked = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("Rectangular Mask Applied to Image", masked)
cv2.waitKey(0)

# 構造一個圓形掩碼(半徑為140px,并應用位運算)
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.circle(mask, (155, 200), 140, 255, -1)
masked = cv2.bitwise_and(image, image, mask=mask)

# 展示輸出圖像
cv2.imshow("Circular Mask", mask)
cv2.imshow("Circular Mask Applied to Image", masked)
cv2.waitKey(0)

參考

https://www.pyimagesearch.com/2021/01/19/image-masking-with-opencv/

到此這篇關于超詳細注釋之OpenCV制作圖像Mask的文章就介紹到這了,更多相關OpenCV 圖像Mask內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 完美解決Python2操作中文名文件亂碼的問題

    完美解決Python2操作中文名文件亂碼的問題

    下面小編就為大家帶來一篇完美解決Python2操作中文名文件亂碼的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • pytorch 如何使用amp進行混合精度訓練

    pytorch 如何使用amp進行混合精度訓練

    這篇文章主要介紹了pytorch 使用amp進行混合精度訓練的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python安裝dlib庫報錯問題及解決方法

    python安裝dlib庫報錯問題及解決方法

    這篇文章主要介紹了python安裝dlib庫報錯問題及解決方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Python字符串拼接、截取及替換方法總結分析

    Python字符串拼接、截取及替換方法總結分析

    這篇文章主要介紹了Python字符串拼接、截取及替換方法,結合實例形式總結分析了Python針對字符串的拼接、截取與替換的原理與常見使用技巧,需要的朋友可以參考下
    2016-04-04
  • Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗簽

    Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽

    這篇文章主要介紹了Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗簽,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2019-12-12
  • python爬蟲入門教程--正則表達式完全指南(五)

    python爬蟲入門教程--正則表達式完全指南(五)

    要想做爬蟲,不可避免的要用到正則表達式,如果是簡單的字符串處理,類似于split,substring等等就足夠了,可是涉及到比較復雜的匹配,當然是正則的天下,下面這篇文章主要給大家介紹了python爬蟲之正則表達式的相關資料,需要的朋友可以參考下。
    2017-05-05
  • pandas DataFrame數據轉為list的方法

    pandas DataFrame數據轉為list的方法

    下面小編就為大家分享一篇pandas DataFrame數據轉為list的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Pycharm 解決自動格式化沖突的設置操作

    Pycharm 解決自動格式化沖突的設置操作

    這篇文章主要介紹了Pycharm 解決自動格式化沖突的設置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 如何基于opencv實現簡單的數字識別

    如何基于opencv實現簡單的數字識別

    現在很多場景需要使用的數字識別,比如銀行卡識別,以及車牌識別等,在AI領域有很多圖像識別算法,大多是居于opencv 或者谷歌開源的tesseract 識別,下面這篇文章主要給大家介紹了關于如何基于opencv實現簡單的數字識別,需要的朋友可以參考下
    2021-09-09
  • 由淺入深學習TensorFlow MNIST 數據集

    由淺入深學習TensorFlow MNIST 數據集

    這篇文章主要由淺入深學習的講解TensorFlow MNIST 數據集,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論

精品国内自产拍在线观看