OpenCV 学习笔记——cv.addWeighted

OpenCV 学习笔记——cv.addWeighted

  • addWeighted()函数

addWeighted()函数

addWeighted()函数:用来将两个图片进行融合。

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

官方文档解释为

  • src1 first input array.
  • alpha weight of the first array elements.
  • src2 second input array of the same size and channel number as src1.
  • beta weight of the second array elements.
  • gamma scalar added to each sum.
  • dst output array that has the same size and number of channels as the input arrays.
  • dtype optional depth of the output array; when both input arrays have the same depth, dtype can be set to -1, which will be equivalent
    to src1.depth().

大致意思如下

  • src1:插入的第一个图片;
  • src2:插入的第二个图片;
  • alpha:double类型,加权系数,是src1图片的融合占比 ;
  • beta:double类型,加权系数,是src2图片的融合占比;
  • gamma:double类型,加权后图像的偏移量;
  • dst:输出图像;
  • dtype:默认为-1。

该函数的计算公式为

dst ( I ) = saturate ( src1 ( I ) ∗ alpha + src2 ( I ) ∗ beta + gamma ) \texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} ) dst(I)=saturate(src1(I)alpha+src2(I)beta+gamma)
因此可以利用它来调节图片的对比度和亮度

def contrast_brighten_demo(image,c,b):#c为对比度 b 为亮度
	h,w,ch=image.shape #获取图像尺寸
	blank =np.zeros([h,w,ch],image.dtype) #创建一个和图像尺寸相同的纯黑图片
	#或者blank=np.zeros_like(image,image.dtype)
	dst=cv.addWeighted(image,c,blank,1-c,b)#调整权重 
	cv.imshow("con-bri-demo",dst)

使用后结果如下

contrast_brighten_demo(image,1,0)#对比度亮度不变

OpenCV 学习笔记——cv.addWeighted_第1张图片

contrast_brighten_demo(image,2,0)#对比度增强 亮度不变

OpenCV 学习笔记——cv.addWeighted_第2张图片

contrast_brighten_demo(image,1,100)#对比度不变 亮度增强

OpenCV 学习笔记——cv.addWeighted_第3张图片
附:OpenCV官方文档:https://docs.opencv.org/master/d2/de8/group__core__array.html#gafafb2513349db3bcff51f54ee5592a19

你可能感兴趣的:(OpenCV)