卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

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

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

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

利用按位與或非和MASK進(jìn)行圖片疊加

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

```

_and(roi, roi, maskmask)

_and(pic,pic, masknotmask)

```

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

![image]()

![pic]()

讀取并顯示要疊加的圖片

首先,我們分別讀取兩幅要疊加的圖片,并將第一個(gè)圖片賦值給變量“image”,第二個(gè)圖片賦值給變量“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í),獲取第二個(gè)圖片的行數(shù)和列數(shù),并創(chuàng)建興趣點(diǎn)(ROI)。

```python

deltax 50

deltay 150

rows, cols [:2]

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

("roi", roi)

```

生成興趣點(diǎn)(ROI)

在第一個(gè)圖片中,根據(jù)輸入的坐標(biāo)生成興趣點(diǎn)(ROI)。代碼如下:

```python

gray (pic, _BGR2GRAY)

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

("mask", mask)

```

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

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

```python

notmask _not(mask)

("notmask", notmask)

```

對(duì)ROI和第二個(gè)圖像進(jìn)行Mask操作

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

```python

backimage _and(roi, roi, maskmask)

("backimage", backimage)

frontpic _and(pic, pic, masknotmask)

("frontpic", frontpic)

```

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

疊加兩幅圖像

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

```python

result (backimage, frontpic)

("result", result)

```

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

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

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

```python

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

("image", image)

```

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

標(biāo)簽: