OpenCV的图像加法运算 您所在的位置:网站首页 opencv图像叠加小图 OpenCV的图像加法运算

OpenCV的图像加法运算

2023-09-25 07:16| 来源: 网络整理| 查看: 265

1.基本介绍

  opencv中的图像加法运算就是将两幅图像或一幅图像与一个标量(标量即单一的数值)进行相加。   对于两幅的图像相加,要求相加的图像的大小应该相同,在处理时应该将两幅图像相同位置的像素的灰度值(灰度图像)或彩色像素各通道值(彩色图像)分别相加。   对于一幅图像和一个标量相加的情况,则应该将图像所有像素的各通道值分别与标量进行相加。   目前主要有两种用途,一种是用于减少甚至消除图像采集中混入的噪声,原理是图像各点的采集噪声互不相关且噪声具有零均值的统计特性,因此可以对图像进行多次采集形成多幅图像,然后将这多幅图像相加再取平均值,就可以实现噪点的消除;另一种是用来做特效,把多幅图像叠加在一起后做进一步的处理。   在OpenCV中可以通过加号运算符“+” 对图像进行加法运算,或者通过 cv2.add()函数对图像进行加法运算。通常情况下,在灰度图像中,像素用 8 个比特位(一个字节)来表示,像素值的范围是[0,255]。两个像素值在进行加法运算时,求得的和很可能超过 255。

2.加号“+”运算符

使用加号运算符“+”对图像 a和 b进行求和运算时,遵循如下规则: 当a+b小于等于255时,a+b=a+b; 当a+b大于255时,a+b=mod(a+b,256); 其中mod(a+b, 256)表示计算a+b的和除以 256 取余数; 上述规则也可以简化为a+b= mod(a+b, 256),在运算时无论相加的和是否大于255,都对数值 256 取模。

3.cv2.add()函数

使用cv2.add() 函数对进行加法操作时,会将超过图像饱和值的数值处理为饱和值(最大值)。 函数 cv2.add()可以用来计算图像像素值相加的和,其语法格式为: add(src1, src2, dst=None, mask=None, dtype=None) 参数说明: src1,src2: 相加的两幅大小和通道数相等的图像或一副图像和一个标量(标量即单一的数值) dst:可选参数,为输出结果保存的变量,默认值为None。如果为非None,输出图像保存到dst对应实参中,其大小和通道数与输入图像相同,图像的深度(即图像像素的位数)由dtype参数或输入图像确认 mask: 可选参数,图像掩膜,为8位单通道的灰度图像,用于指定要更改的输出图像数组的元素,即输出图像像素只有mask对应位置元素不为0的部分才输出,否则该位置像素的所有通道分量都设置为0 dtype: 可选参数,输出图像数组的深度,即图像单个像素值的位数(如RGB用三个字节表示,则为24位)

4.图像加法运算案例 import cv2 lena_1=cv2.imread("Lena_gray.jpg") lena_2=lena_1 result1=lena_1+lena_2 result2=cv2.add(lena_1,lena_2) cv2.imshow("原图",lena_1) cv2.imshow("使用加号“+”运算符相加",result1) cv2.imshow("使用cv2.add()函数相加",result2) cv2.waitKey() cv2.destroyAllWindows() 程序运行结果

在这里插入图片描述 原图:lena灰度图像 在这里插入图片描述 使用加号“+”运算符相加: 在计算图像像素值的和时,将和大于 255 的值进行了取模处理,取模后大于 255 的部分值变得更小了,导致本该更亮的像素点变暗了,相加所得的图像看起来并不自然。 在这里插入图片描述 使用cv2.add()函数相加: 计算图像像素值的和时,将和大于 255 的值处理为饱和值 255。图像像素值相加后让图像的像素值增大了,图像整体变亮。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有