• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    超详细注释之OpenCV按位AND OR XOR和NOT

    这篇博客将介绍如何使用OpenCV应用按位AND、OR、XOR和NOT。上一篇学习了如何从图像中裁剪和提取感兴趣的区域(ROI),截取的都是矩形。但是如果想裁剪一个非矩形区域呢?该怎么办?

    答案是同时应用位运算和掩蔽。

    比较好记的是AND交集、OR并集、XOR并集-交集、NOT——非取反;

    1. 效果图

    矩形 VS 圆形效果图如下:

    AND操作效果图如下,可以看到正方形的边缘丢失了,因为矩形没有圆形覆盖那么大的区域,因此两个像素都没有“开”。

    OR操作效果图如下,可以看到矩形和圆形被合并了。

    XOR操作效果图如下,可以看到正方形的中心被移走了,因为异或操作不能同时具有大于零的像素。

    NOT操作效果图如下,可以看到圆由前景白色背景黑色变成了前景黑色背景白色。

    2. 源码

    # 对示例图像应用AND、OR、XOR和NOT运算符。
    # USAGE
    # python opencv_bitwise.py
    
    # 导入必要的包
    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)
    
    # 'AND'操作——当输入都是>0的像素时,则得到开操作像素为255白色,否则被设置为关闭,像素为0黑色
    # 当且仅当两个像素都大于零时,按位AND为真。
    bitwiseAnd = cv2.bitwise_and(rectangle, circle)
    cv2.imshow("AND", bitwiseAnd)
    cv2.waitKey(0)
    
    # ‘OR'操作得到矩形和圆形的并集,只要有一个>0,就得到255白色,否则为0
    # 如果两个像素中的任何一个大于零,则按位“或”为真。
    bitwiseOr = cv2.bitwise_or(rectangle, circle)
    cv2.imshow("OR", bitwiseOr)
    cv2.waitKey(0)
    
    # ‘XOR'是OR的补集,仅当俩个像素有一个>0时,为白色255
    bitwiseXor = cv2.bitwise_xor(rectangle, circle)
    cv2.imshow("XOR", bitwiseXor)
    cv2.waitKey(0)
    
    # ‘NOT'操作:0变成255,255变成0
    bitwiseNot = cv2.bitwise_not(circle)
    cv2.imshow("NOT", bitwiseNot)
    cv2.waitKey(0)
    

    参考 https://www.pyimagesearch.com/2021/01/19/opencv-bitwise-and-or-xor-and-not/

    到此这篇关于超详细注释之OpenCV按位AND OR XOR和NOT的文章就介绍到这了,更多相关OpenCV按位AND OR XOR NOT内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 超详细注释之OpenCV构建透明的叠加层
    • 超详细注释之OpenCV Haar级联检测器进行面部检测
    • 超详细注释之OpenCV更改像素与修改图像通道
    • 超详细注释之OpenCV dlib实现人脸采集
    上一篇:Python 数据结构之树的概念详解
    下一篇:超详细注释之OpenCV构建透明的叠加层
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    超详细注释之OpenCV按位AND OR XOR和NOT 超,详细,注释,之,OpenCV,按位,