zoukankan      html  css  js  c++  java
  • python-opencv-图像的算数运算

     

    图像相加:

    import cv2
    import numpy as np
    
    image = cv2.imread("3.jpg")
    cv2.imshow("3",image)
    
    #图像image各像素加100
    M = np.ones(image.shape,dtype="uint8")*100    #与image大小一样的全100矩阵
    added = cv2.add(image,M)   #两个图像相加
    # 大于255的按255处理
    
    cv2.imshow("Added",added)
    cv2.waitKey(0)

    效果图:

    图像相减:

    import cv2
    import numpy as np
    
    image = cv2.imread("3.jpg")
    cv2.imshow("yuan",image)
    
    #图像image各像素减去50
    M = np.ones(image.shape,dtype="uint8")*50    #与image大小一样的全100矩阵
    img = cv2.subtract(image,M)   #图像image减去图像M
    # 小于0的按0处理
    
    cv2.imshow("hou",img)
    cv2.waitKey(0)

    效果图:

    图像的交集运算--与运算

    import numpy as np
    import cv2
    
    #画矩形
    Rectangle = np.zeros((300,300),dtype="uint8")
    cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
    cv2.imshow("Rectangle",Rectangle)
    
    #画圆形
    Circle = np.zeros((300,300),dtype="uint8")
    cv2.circle(Circle,(150,150),150,255,-1)
    cv2.imshow("Circle",Circle)
    
    #图像的交
    bitwiseAnd = cv2.bitwise_and(Rectangle,Circle)
    cv2.imshow("AND",bitwiseAnd)
    cv2.waitKey(0)

    cv2.bitwise_and()是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0

    效果图:

    图像的或运算: 

    import numpy as np
    import cv2
    
    #画矩形
    Rectangle = np.zeros((300,300),dtype="uint8")
    cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
    cv2.imshow("Rectangle",Rectangle)
    
    #画圆形
    Circle = np.zeros((300,300),dtype="uint8")
    cv2.circle(Circle,(150,150),150,255,-1)
    cv2.imshow("Circle",Circle)
    
    #图像的交
    bitwiseAnd = cv2.bitwise_or(Rectangle,Circle)  #或运算--并集
    cv2.imshow("AND",bitwiseAnd)
    cv2.waitKey(0)

    效果图:

    异或运算: 

    import numpy as np
    import cv2
    
    #画矩形
    Rectangle = np.zeros((300,300),dtype="uint8")
    cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
    cv2.imshow("Rectangle",Rectangle)
    
    #画圆形
    Circle = np.zeros((300,300),dtype="uint8")
    cv2.circle(Circle,(150,150),150,255,-1)
    cv2.imshow("Circle",Circle)
    
    #图像的交
    bitwiseXor = cv2.bitwise_xor(Rectangle,Circle)  #图像的异或
    cv2.imshow("XOR",bitwiseXor)
    cv2.waitKey(0)

    效果图:

    非运算:

    import numpy as np
    import cv2
    
    #画圆形
    Circle = np.zeros((300,300),dtype="uint8")
    cv2.circle(Circle,(150,150),150,255,-1)
    cv2.imshow("Circle",Circle)
    
    bitwiseNot = cv2.bitwise_not(Circle)  #非运算
    cv2.imshow("NOT",bitwiseNot)
    cv2.waitKey(0)

  • 相关阅读:
    ◆◆0[问题解决]REUSE_ALV_FIELDCATALOG_MERGE丢失catalog字段
    不同类型ALV的catalog数据转换[LVC_TRANSFER_TO_SLIS][LVC_TRANSFER_FROM_SLIS]
    ◆◆0ABAP ALV分类以及对应的函数,类小结
    [代码]如何在ALV头中显示Logo图片-[REUSE_ALV_GRID_DISPLAY]
    ◆◆0SALV-如何刷新显示
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]-显示单选按钮(radio button)
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]ALV中字段显示前导零(leading zero)
    ◆◆0[REUSE_ALV_GRID_DISPLAY_LVC]-显示布局按钮(layout button)
    [问题解决]ALV标准过滤功能失效
    ◆◆0SALV-设置SALV选择模式
  • 原文地址:https://www.cnblogs.com/liming19680104/p/12210153.html
Copyright © 2011-2022 走看看