![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=1739692489-sPSwkoT2jkt0h6AtiUfmSbYBwqbe1SfI-0-41d799d221dbd840583906b4f5020c3d)
经过img3=cv2.add(img1, img2)运算后,得到img3为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0059.jpg?sign=1739692489-pnJ9sBUtyYzXxSbrGxsg7QmVKCfeMCKU-0-e33d12d3e24b7a4521c751f0f07ba3b5)
经过img4=cv2.add(img1,6)运算后,得到img4为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0060.jpg?sign=1739692489-d1nWkqMTKj4pWFrmgjxc15ZutTzWGvqj-0-d820ae8fedbf0c7ab974c6e77035856a)
经过img5=cv2.add(6, img2)运算后,得到img5为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0069-0061.jpg?sign=1739692489-zPCNiM8KBgY6dIzDmDUjQ5JegFVeQZn7-0-15bf191f869ab3f4a5884dd1a6d24bf5)
【例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]]