【Python+OpenCV入门学习】九、图像的算术运算

本篇文章,学习图像的算术运算,如加法运算。

环境:Windows 7(64)   Python 3.6    OpenCV3.4.2

一、图像的加法运算

1.1 cv.add()

OpenCV提供了函数add(),将两个图像相加,两个图像应该具有相同的深度和类型,或者第二个图像可以是标量值。当相加的值超过255时,值就等于255。numpy提供的加法操作是模运算。以下为编程测试结果。

                       

1.2 cv.addWeighted()

函数形式如下:

dst = cv.addWeighted( src1, alpha, src2, beta, gamma[, dst[, dtype]] )

功能:dst = src1*alpha + src3*beta + gamma

参数:

src1:第一个输入数组。

alpha:第一个数组元素的权重。

src2:第二个输入数组,其大小和通道号与src1相同。

beta:第二阵列元素的权重。

gamma:加到总和上。

dst:输出数组,其大小和通道数与输入数组相同。

dtype:输出数组的可选深度; 当两个输入数组具有相同的深度时,dtype可以设置为-1,这相当于src1.depth().

测试代码如下:

import cv2 as cv
import numpy as np


img1 = cv.imread('1.jpg')
img2 = cv.imread('2.jpg')
img1_roi = img1[1:200,1:200]

rows,cols,channels = img2.shape
roi = img1[ 0:rows, 0:cols ]

dst = cv.addWeighted(roi,0.7,img2,0.3,0)
img1[0:rows, 0:cols ] = dst
cv.imshow('res',img1)
cv.waitKey(0)
cv.destroyAllWindows()

运行结果图如下:  

                                 

猜你喜欢

转载自blog.csdn.net/qq_18995069/article/details/83478794