计算机视觉 OpenCV (8) 与或非操作

作者: zidea | 来源:发表于2019-08-15 21:32 被阅读10次
    import cv2
    import numpy as np
    

    我们引入 numpy 和 opencv 两个库

    img1 = np.zeros((250,500,3), np.uint8)
    img1 = cv2.rectangle(img1,(200,0),(300,100),(255,255,255),-1)
    

    第一张图我们创建一张背景全黑而中间部分为白色小块的图。

    img1
    img2 = np.zeros((250,500,3), np.uint8)
    img2 = cv2.rectangle(img2,(250,0),(500,250),(255,255,255),-1)
    

    第二张图为左侧为黑色右侧为白色的图


    img2
    # bitAnd = cv2.bitwise_and()
    
    cv2.imshow('img1',img1)
    cv2.imshow('img2',img2)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    与(and)

    bitAnd = cv2.bitwise_and(img2,img1)
    
    cv2.imshow('img1',img1)
    cv2.imshow('img2',img2)
    cv2.imshow('bitAnd',bitAnd)
    
    bitAnd

    这个理解起来应该不难,

    或(or)

    bitOr = cv2.bitwise_or(img2,img1)
    cv2.imshow('bitOr',bitOr)
    
    bitOr_screenshot

    Xor

    bitXor = cv2.bitwise_xor(img2,img1)
    cv2.imshow('bitXor',bitXor)
    
    bitXor

    非(Not)

    bitNot = cv2.bitwise_not(img2)
    cv2.imshow('bitNot',bitNot)
    
    bitNot

    在计算机世界里只有 1 和 0 我们熟悉的十进制数字可表示由 1 和 0 组成二进制进行表示。



    我们看如何用二进制表示 23 ,有很多方法用于将十进制转换为二进制,我们用小格来表示。

    我们将每一个小方格对应 2 几次方。


    用于对应数除以 23 如果不能够整除 例如 128 除以 23 为 5 ,16 除以 23 不够除所以在 16 给出 1 然后 23 - 16 = 7



    8 除以 7 可以除,所以给 0 然后是 4 不够被 7 除,所以给 1 7 - 4 = 3 剩余 3 分别为 2 + 1

    那么我们可以用二进制表示 255 。每一位上都是 1,我们这里与、或非运算都是二进制进行与、或非操作。



    这里对两张图进行与、或非运算进行就是对颜色每一个位二进制进行与、或非操作。


    相关文章

      网友评论

        本文标题:计算机视觉 OpenCV (8) 与或非操作

        本文链接:https://www.haomeiwen.com/subject/nzijdctx.html