瀟朋友免費(fèi)班級(jí)網(wǎng)站建設(shè)系統(tǒng)交換友鏈平臺(tái)
一、掩膜(mask)
在有些圖像處理的函數(shù)中有的參數(shù)里面會(huì)有mask參數(shù),即此函數(shù)支持掩膜操作,首先何為掩膜以及有什么用,如下:
數(shù)字圖像處理中的掩膜的概念是借鑒于PCB制版的過(guò)程,在半導(dǎo)體制造中,許多芯片工藝步驟采用光刻技術(shù),用于這些步驟的圖形“底片”稱為掩膜(也稱作“掩?!?#xff09;,其作用是:在硅片上選定的區(qū)域中對(duì)一個(gè)不透明的圖形模板遮蓋,繼而下面的腐蝕或擴(kuò)散將只影響選定的區(qū)域以外的區(qū)域。
圖像掩膜與其類似,用選定的圖像、圖形或物體,對(duì)處理的圖像(全部或局部)進(jìn)行遮擋,來(lái)控制圖像處理的區(qū)域或處理過(guò)程。
數(shù)字圖像處理中,掩模為二維矩陣數(shù)組,有時(shí)也用多值圖像,圖像掩模主要用于:
①提取感興趣區(qū),用預(yù)先制作的感興趣區(qū)掩模與待處理圖像相乘,得到感興趣區(qū)圖像,感興趣區(qū)內(nèi)圖像值保持不變,而區(qū)外圖像值都為0。
②屏蔽作用,用掩模對(duì)圖像上某些區(qū)域作屏蔽,使其不參加處理或不參加處理參數(shù)的計(jì)算,或僅對(duì)屏蔽區(qū)作處理或統(tǒng)計(jì)。
③結(jié)構(gòu)特征提取,用相似性變量或圖像匹配方法檢測(cè)和提取圖像中與掩模相似的結(jié)構(gòu)特征。
④特殊形狀圖像的制作。
二、案例
1.效果圖
原始圖如下:
矩形掩碼 VS 效果圖如下:(使用矩形掩碼,只提取圖像中指定的區(qū)域,而忽略其他區(qū)域)
圓形掩碼 VS 效果圖如下:(圓形掩模顯示在左邊,掩模的應(yīng)用在右邊。實(shí)質(zhì)上可以使用任意形狀的掩碼圖像,如矩形、圓、線、多邊形等從圖像中提取區(qū)域)
2. 源碼
def main():'''分別使用矩形和圓形遮罩從圖像中提取矩形區(qū)域和圓形區(qū)域。'''import argparseimport cv2import numpy as npimages_bg = r'C:\dest\speed_bg.png'# 加載原始輸入圖像,并展示image = cv2.imread(images_bg)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)# 應(yīng)用掩碼圖像masked = cv2.bitwise_and(image, image, mask=mask)cv2.imshow("Rectangular Mask Applied to Image", masked)cv2.waitKey(0)# 構(gòu)造一個(gè)圓形掩碼(半徑為140px,并應(yīng)用位運(yùn)算)mask = np.zeros(image.shape[:2], dtype="uint8")cv2.circle(mask, (210, 210), 160, 255, -1)# cv2.circle(mask, (202, 202), 110, 255, -1)masked = cv2.bitwise_and(image, image, mask=mask)bitwiseNot = cv2.bitwise_not(mask)cv2.imshow("bitwiseNot", bitwiseNot)# 展示輸出圖像cv2.imshow("Circular Mask", mask)cv2.imshow("Circular Mask Applied to Image", masked)cv2.waitKey()# TACH_PATTERN_PATH = r'C:\dest\new\tach_mask.png'# aircv.imwrite(TACH_PATTERN_PATH, bitwiseNot)TACH_PATTERN_PATH2 = r'C:\dest\new\speed_mask.png'aircv.imwrite(TACH_PATTERN_PATH2, mask)if __name__ == "__main__":main()
參考資料:
Image Masking with OpenCV
超詳細(xì)注釋之OpenCV制作圖像Mask
OpenCV之bitwise_and、bitwise_not等圖像基本運(yùn)算及掩膜