日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV 掩膜的应用

發(fā)布時間:2025/5/22 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV 掩膜的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

掩膜是用選定的圖像、圖形或物體,對要處理的圖像進(jìn)行遮擋,來控制圖像 處理的區(qū)域。

在數(shù)字圖像處理中,通常使用二維矩陣數(shù)組進(jìn)行掩膜。掩膜是由0和1組成一個二進(jìn)制圖像,利用該掩膜圖像要處理的圖像進(jìn)行掩膜,其中1值的區(qū)域被處理,0 值區(qū)域被屏蔽,不會處理。

掩膜的主要用途是:

  • 提取感興趣區(qū)域:用預(yù)先制作的感興趣區(qū)掩模與待處理圖像進(jìn)行”與“操作,得到感興趣區(qū)圖像,感興趣區(qū)內(nèi)圖像值保持不變,而區(qū)外圖像值都為0。
  • 屏蔽作用:用掩模對圖像上某些區(qū)域作屏蔽,使其不參加處理或不參加處理參數(shù)的計算,或僅對屏蔽區(qū)作處理或統(tǒng)計。
  • 結(jié)構(gòu)特征提取:用相似性變量或圖像匹配方法檢測和提取圖像中與掩模相似的結(jié)構(gòu)特征。
    特殊形狀圖像制作
    掩膜在遙感影像處理中使用較多,當(dāng)提取道路或者河流,或者房屋時,通過一個掩膜矩陣來對圖像進(jìn)行像素過濾,然后將需要的地物或者標(biāo)志突出顯示出來。

使用cv.calcHist()來查找完整圖像的直方圖。
如果要查找圖像某些區(qū)域的直方圖,只需在要查找直方圖的區(qū)域上創(chuàng)建一個白色的掩膜圖像,否則創(chuàng)建黑色, 然后將其作為掩碼mask傳遞即可。

bitwise_and(src1, src2, dst=None, mask=None)
  • src1、src2:為輸入圖像或標(biāo)量,標(biāo)量可以為單個數(shù)值或一個四元組
  • dst:可選輸出變量,如果需要使用非None則要先定義,且其大小與輸入變量相同
  • mask:圖像掩膜,可選參數(shù),為8位單通道的灰度圖像,用于指定要更改的輸出圖像數(shù)組的元素,即輸出圖像像素只有mask對應(yīng)位置元素不為0的部分才輸出,否則該位置像素的所有通道分量都設(shè)置為0

返回值為結(jié)果圖像矩陣,如果dst傳入了實參,則返回值與dst對應(yīng) 實參相同。

import numpy as np import cv2 as cv from matplotlib import pyplot as plt# 1. 直接以灰度圖的方式讀入 img = cv.imread('./1.png', 0)# 2. 創(chuàng)建蒙版 mask = np.zeros(img.shape[:2], np.uint8) mask[100:150, 400:480] = 1 # 選定感興趣區(qū)域 1或255# 3.掩模 masked_img = cv.bitwise_and(img, img, mask=mask)# 4. 統(tǒng)計掩膜后圖像的灰度圖 mask_histr = cv.calcHist([img], [0], mask, [256], [0, 256])# 5. 圖像展示 fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8)) axes[0, 0].imshow(img, cmap=plt.cm.gray) axes[0, 0].set_title("原圖") axes[0, 1].imshow(mask, cmap=plt.cm.gray) axes[0, 1].set_title("蒙版數(shù)據(jù)") axes[1, 0].imshow(masked_img, cmap=plt.cm.gray) axes[1, 0].set_title("掩膜后數(shù)據(jù)") axes[1, 1].plot(mask_histr) axes[1, 1].grid() axes[1, 1].set_title("灰度直方圖") plt.show()

掩膜后的數(shù)據(jù)

總結(jié)

以上是生活随笔為你收集整理的OpenCV 掩膜的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。