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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV_03 图像的算数操作:图像的加法+图像的混合

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV_03 图像的算数操作:图像的加法+图像的混合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.圖像的加法

你可以使用OpenCV的cv.add()函數把兩幅圖像相加,或者可以簡單地通過numpy操作添加兩個圖像,如res = img1 + img2。兩個圖像應該具有相同的大小和類型,或者第二個圖像可以是標量值。

注意:OpenCV加法和Numpy加法之間存在差異。OpenCV的加法是飽和操作,而Numpy添加是模運算。

參考以下代碼:

>>> x = np.uint8([250]) >>> y = np.uint8([10]) >>> print( cv.add(x,y) ) # 250+10 = 260 => 255 [[255]] >>> print( x+y ) # 250+10 = 260 % 256 = 4 [4]

這種差別在你對兩幅圖像進行加法時會更加明顯。OpenCV 的結果會更好一點。所以我們盡量使用 OpenCV 中的函數。

我們將下面兩幅圖像:

代碼:

import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1 讀取圖像 img1 = cv.imread("view.jpg") img2 = cv.imread("rain.jpg")# 2 加法操作 img3 = cv.add(img1,img2) # cv中的加法 img4 = img1+img2 # 直接相加# 3 圖像顯示 fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=100)axes[0].imshow(img3[:,:,::-1]) axes[0].set_title("cv中的加法")axes[1].imshow(img4[:,:,::-1]) axes[1].set_title("直接相加") plt.show()

結果如下所示:

2.圖像的混合

這其實也是加法,但是不同的是兩幅圖像的權重不同,這就會給人一種混合或者透明的感覺。圖像混合的計算公式如下:

g(x) = (1?α)f0(x) + αf1(x)

通過修改 α 的值(0 → 1),可以實現非常炫酷的混合。

現在我們把兩幅圖混合在一起。第一幅圖的權重是0.7,第二幅圖的權重是0.3。函數cv2.addWeighted()可以按下面的公式對圖片進行混合操作。

dst = α?img1 + β?img2 + γ

參考以下代碼:

import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1 讀取圖像 img1 = cv.imread("view.jpg") img2 = cv.imread("rain.jpg")# 2 圖像混合 這里γ取為零。 img3 = cv.addWeighted(img1,0.7,img2,0.3,0)# 3 圖像顯示 plt.figure(figsize=(8,8)) plt.imshow(img3[:,:,::-1]) plt.show()

窗口將如下圖顯示:


總結

  • 圖像加法:將兩幅圖像加載一起

    cv.add()

  • 圖像的混合:將兩幅圖像按照不同的比例進行混合

    cv.addweight()

  • 注意:這里都要求兩幅圖像是相同大小的。

    總結

    以上是生活随笔為你收集整理的OpenCV_03 图像的算数操作:图像的加法+图像的混合的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。