国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

通過Mask實現(xiàn)圖片疊加和背景透明

在之前的文章中,我們介紹了使用OpenCV進行圖片的與、或、非計算,實現(xiàn)了幾何圖案生成。而通過使用Mask,可以更好地實現(xiàn)圖片疊加的功能,并且能夠創(chuàng)建具有透明背景的效果。本文將演示如何通過Mask完成

在之前的文章中,我們介紹了使用OpenCV進行圖片的與、或、非計算,實現(xiàn)了幾何圖案生成。而通過使用Mask,可以更好地實現(xiàn)圖片疊加的功能,并且能夠創(chuàng)建具有透明背景的效果。本文將演示如何通過Mask完成兩幅圖片的疊加,并且使背景透明化,并引入了ROI(Region of Interest)興趣點的概念。

利用按位與或非和MASK進行圖片疊加

在OpenCV學(xué)習(xí)中,有時需要將兩幅圖片疊加,同時要求背景透明。OpenCV提供了按位與、或、非的功能,可以結(jié)合MASK的使用來實現(xiàn)這一需求。以下是主要函數(shù):

```

_and(roi, roi, maskmask)

_and(pic,pic, masknotmask)

```

下圖展示了疊加結(jié)果:

![image]()

![pic]()

讀取并顯示要疊加的圖片

首先,我們分別讀取兩幅要疊加的圖片,并將第一個圖片賦值給變量“image”,第二個圖片賦值給變量“pic”。代碼如下:

```python

import cv2 as cv

import numpy as np

image ('')

pic ('')

("pic", pic)

```

設(shè)置要疊加的位置偏移量

接下來,我們需要設(shè)置要疊加的位置偏移量,即“deltax”和“deltay”。這里將“deltax”設(shè)置為50,“deltay”設(shè)置為150。同時,獲取第二個圖片的行數(shù)和列數(shù),并創(chuàng)建興趣點(ROI)。

```python

deltax 50

deltay 150

rows, cols [:2]

roi image[deltax:rows deltax, deltay:cols deltay]

("roi", roi)

```

生成興趣點(ROI)

在第一個圖片中,根據(jù)輸入的坐標生成興趣點(ROI)。代碼如下:

```python

gray (pic, _BGR2GRAY)

ret, mask (gray, 150, 255, _BINARY)

("mask", mask)

```

創(chuàng)建掩碼(Mask)

通常情況下,掩碼一般是白底黑字或黑底白字。而在本例中,我們將與掩碼顏色相反,即變成黑底白字。代碼如下:

```python

notmask _not(mask)

("notmask", notmask)

```

對ROI和第二個圖像進行Mask操作

分別對ROI和第二個圖像進行Mask操作,注意Mask參數(shù)的使用。代碼如下:

```python

backimage _and(roi, roi, maskmask)

("backimage", backimage)

frontpic _and(pic, pic, masknotmask)

("frontpic", frontpic)

```

注意,此時的“backimage”已經(jīng)是黑字彩色背景。

疊加兩幅圖像

將兩幅圖像疊加在一起,并將結(jié)果賦值給“result”。代碼如下:

```python

result (backimage, frontpic)

("result", result)

```

此時,ROI區(qū)域已經(jīng)完成疊加。

將疊加區(qū)域放回原圖

最后,將疊加的區(qū)域放回原圖,并顯示結(jié)果。代碼如下:

```python

image[deltax:rows deltax, deltay:cols deltay] result

("image", image)

```

通過以上步驟,我們成功地完成了兩幅圖片的疊加,并且實現(xiàn)了背景透明化的效果。希望本文能夠幫助你更好地理解和應(yīng)用OpenCV中的Mask功能。

標簽: