美文网首页Artificial Intelligence我爱编程
opencv入门4:图像算术-image arithmetic

opencv入门4:图像算术-image arithmetic

作者: HaveyYeung | 来源:发表于2018-01-29 15:26 被阅读17次

    RGB的像素值都在[0,255],如果我们想给一个250的像素再加十个像素会怎么样?

    NumPy将执行模算术和“环绕”。比如250 再加10像素,会绕回到4,
    OpenCV 将执行剪切并确保像素值永远不会超出范围[0,255]

    NumPy will perform modulo arithmetic and “wrap around”.
    OpenCV, on the other hand, will perform clipping and ensure pixel values never fall outside the range [0, 255].

    from __future__ import print_function
    import numpy as np 
    import argparse
    import cv2
    
    ap = argparse.ArgumentParser()
    ap.add_argument("-i","--image",required =True, help="Path to the image")
    args = vars(ap.parse_args())
    
    image = cv2.imread(args["image"])
    cv2.imshow("Original",image)
    
    print("max of 255:{}".format(cv2.add(np.uint8([200]),np.uint8([100]))))
    print("min of 0:{}".format(cv2.subtract(np.uint8([50]),np.uint8([100]))))
    
    print("wrap around :{}".format(np.uint8([200])+np.uint8([100])))
    print("wrap around :{}".format(np.uint8([50])-np.uint8([100])))
    

    运行结果如下:

    图·1
    M =np.ones(image.shape, dtype="uint8")*100
    # defines a NumPy array of ones, with the same
    # size as our image.
    #为了用100的值而不是1来填充我们的矩阵,我们简单地把1的矩阵乘以100。
    added = cv2.add(image,M)
    cv2.imshow("Added",added)
    
    M = np.ones(image.shape,dtype ="uint8")*50
    subtracted = cv2.subtract(image,M)
    cv2.imshow("Subtraced",subtracted)
    cv2.waitKey(0)
    
    图·2

    一件事情的毕业,永远是另一件事情的开启.
    更多文章请关注我的博客:https://harveyyeung.github.io

    相关文章

      网友评论

        本文标题:opencv入门4:图像算术-image arithmetic

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