4、像素运算

算术运算

加减乘除,但必须两个图像要一致,即cv.shape一致

def add_function(image1, image2):
    """
    像素相加:
        其中白色就是255,再加也是白色; 黑色是 0,
    """
    image = cv.add(image1, image2)
    cv.imshow("add", image)


def subtract_function(image1, image2):
    """
    像素相减:
        白色可以减去任何颜色;
        但是黑色减其他颜色为负数,根据无符号数uint8,负数都看做0
    """
    image = cv.subtract(image1, image2)
    cv.imshow("subtract", image)


def multiply_function(image1, image2):
    """
    像素相乘:
        根据像素模糊,白色区域附近不是平滑的,所以白色附近像素有花;
    """
    image = cv.multiply(image1, image2)
    cv.imshow("multiply", image)


def other(image):
    """
        图像均值,均值越高,证明色彩越多;
        方差:方差越小,色差越小,如果黑白图片的方差就很高了
    """
    image_mean, image_staddev = cv.meanStdDev(image)
    print("均值:\n %s" % image_mean)
    print("方差:\n %s" % image_staddev)
4、像素运算_第1张图片
算术运算

逻辑运算,即按位与,或,非

def logic_function(image1, image2):
    and_image = cv.bitwise_and(image1, image2)  # 按位与
    or_image = cv.bitwise_or(image1, image2)  # 按位或
    non_image = cv.bitwise_not(image1)  # 按位非

    cv.imshow("and_image", and_image)
    cv.imshow("or_image", or_image)
    cv.imshow("non_image", non_image)
4、像素运算_第2张图片
按位运算

改变亮度和对比度

def control_brightness(image, c, b):
    h, w, ch = image.shape
    blank = np.zeros([h, w, ch], image.dtype)

    # 按比例融合,image 的 c 比例,而 blank 的 1-c 比例
    dst = cv.addWeighted(image, c, blank, 1-c, b)
    cv.imshow("control_brightness", dst)
4、像素运算_第3张图片
control_brightness(src, 1.5, 10),亮度10,对比度1.5

4、像素运算_第4张图片
control_brightness(src, 1.2, 100),亮度100,对比度1.2

你可能感兴趣的:(4、像素运算)