图片色数的数值运算(加减乘除)和逻辑运算(与或非)(四)

代码一 数值运算

  •   cv内置函数
相加:add()    

相减:subtract()    

相乘:divide()    

相除:multiply()
  •   计算原理(对应像素点相加点)
通过获取两张(一次只能是两张)个图片的同一个位置的色素值来实现运算。
  •   注意事项
两张图片的shape要一样。

二 实验素材

两张图片的shape要一样。

三 四则运算

1 代码

import cv2 as cv

#数值运算:加减乘除
def shu_image(src1,src2):
    src=cv.add(src1,src2)
    cv.imshow('+',src)
    src=cv.subtract(src1,src2)
    cv.imshow('-',src)
    src=cv.multiply(src1,src2)
    cv.imshow('*',src)
    src=cv.divide(src1,src2)
    cv.imshow('/',src)

src1=cv.imread('./linux.jpg')
src2=cv.imread('./win7.jpg')
cv.imshow('before_src1',src1)
cv.imshow('before_src2',src2)

shu_image(src1,src2)
cv.waitKey(0)
cv.destroyAllWindows()

2 运行结果

 四 逻辑运算

'''

与 两张图片同一位置的色素两个值均不为零的才会有输出;

或 两张图片同一位置的色素两个值不全为零的才会有输出

非 对一张图片操作 取反

异或 两张图片同一位置的色素两个值有一个为零,另一个不为零才会输出

'''

  cv内置逻辑运算 

与: bitwise_add()

或: bitwise_or()

非: bitwise_not()

异或:bitwise_xor()

代码如下

import cv2 as cv

#逻辑运算,与或非的操作
def luoji_image(src1,src2):
    #与运算 两张图片相同位置的像素都大于1,才显示
    src=cv.bitwise_and(src1,src2)
    cv.imshow('&',src)
    #或运算 两张图片相同位置的像素只要存在大于1,就显示
    src=cv.bitwise_or(src1,src2)
    cv.imshow('|',src)

    #取反 对一张图去反
    src=cv.bitwise_not(src1)
    cv.imshow('not',src)
    #异或 两张图片统一为的色素两个值,有一个为0,另一个不为0,才会有输出.
    src=cv.bitwise_xor(src1,src2)
    cv.imshow('yihuo',src)

src1=cv.imread('./linux.jpg')
src2=cv.imread('./win7.jpg')
cv.imshow('before_src1',src1)
cv.imshow('before_src2',src2)

效果展示

原文地址:https://www.cnblogs.com/angle6-liu/p/10652003.html