![OpenCV轻松入门:面向Python](https://wfqqreader-1252317822.image.myqcloud.com/cover/910/26297910/b_26297910.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.5 图像与数值的运算
在上述加法运算和按位运算中,参与运算的两个算子(参数)既可以是两幅图像,也可以是一幅图像与一个数值。
例如,如果想增加图像的整体亮度,可以将每一个像素值都加上一个特定值。在具体实现时,可以给图像加上一个统一像素值的图像,也可以给图像加上一个固定值。
例如,img1和img2的原始值分别为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0058.jpg?sign=1739259097-B5P5QHbKMvgLzgakQjzuhy95ug0YzhTK-0-da394c8890f362e2a067f2ae31493861)
经过img3=cv2.add(img1, img2)运算后,得到img3为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0059.jpg?sign=1739259097-YoOAutD3H3W5OoD8yqRMwUjAzJWdY8Ru-0-6db95240f6a56c841f0fae226f68a4e0)
经过img4=cv2.add(img1,6)运算后,得到img4为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0060.jpg?sign=1739259097-4RvdQs8SzYaRXjS1uA9KTKir6jlJWVE7-0-8a747c47d25f48edb02edb6dba5adf97)
经过img5=cv2.add(6, img2)运算后,得到img5为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0061.jpg?sign=1739259097-Z8vD0NACpbv8cHr1RvT7zNh5mUbmans2-0-2ee0142f9e28c9897c0d69a6c16b9fdb)
【例3.12】演示图像与数值的运算结果。
为了方便理解,本例中采用数组模拟图像演示运算结果。
根据题目要求,编写程序如下:
import cv2 import numpy as np img1=np.ones((4,4), dtype=np.uint8)*3 img2=np.ones((4,4), dtype=np.uint8)*5 print("img1=\n", img1) print("img2=\n", img2) img3=cv2.add(img1, img2) print("cv2.add(img1, img2)=\n", img3) img4=cv2.add(img1,6) print("cv2.add(img1,6)\n", img4) img5=cv2.add(6, img2) print("cv2.add(6, img2)=\n", img5)
运行上述程序,得到如下输出结果:
img1= [[3 3 3 3] [3 3 3 3] [3 3 3 3] [3 3 3 3]] img2= [[5 5 5 5] [5 5 5 5] [5 5 5 5] [5 5 5 5]] cv2.add(img1, img2)= [[8 8 8 8] [8 8 8 8] [8 8 8 8] [8 8 8 8]] cv2.add(img1,6) [[9 9 9 9] [9 9 9 9] [9 9 9 9] [9 9 9 9]] cv2.add(6, img2)= [[11 11 11 11] [11 11 11 11] [11 11 11 11] [11 11 11 11]]