OpenCV轻松入门:面向Python
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.5 图像与数值的运算

在上述加法运算和按位运算中,参与运算的两个算子(参数)既可以是两幅图像,也可以是一幅图像与一个数值。

例如,如果想增加图像的整体亮度,可以将每一个像素值都加上一个特定值。在具体实现时,可以给图像加上一个统一像素值的图像,也可以给图像加上一个固定值。

例如,img1和img2的原始值分别为:

经过img3=cv2.add(img1, img2)运算后,得到img3为:

经过img4=cv2.add(img1,6)运算后,得到img4为:

经过img5=cv2.add(6, img2)运算后,得到img5为:

例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]]