当前位置 博文首页 > OpenCV半小时掌握基本操作之图像裁剪融合

    OpenCV半小时掌握基本操作之图像裁剪融合

    作者:我是小白呀 时间:2021-09-15 18:23

    目录
    • 概述
    • 图像裁剪
    • 数值计算
    • 图像融合

    【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️图像裁剪融合

    概述

    OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.

    在这里插入图片描述

    图像裁剪

    cv2.resize能帮助我们读图像进行裁剪.

    格式:

    cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
    
    • src: 需要裁剪的图片
    • dsize: 裁剪的大小
    • fx: x 轴比例
    • fy: y 轴比例

    在这里插入图片描述

    原图:

    在这里插入图片描述

    例子:

    # 读取数据
    dog = cv2.imread("dog.jpg")
    
    # 拉伸比例1:3
    dog_resize = cv2.resize(dog, (0, 0), fx=1, fy=3)
    cv2.imshow("dog_resize", dog_resize)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    输出结果:

    在这里插入图片描述

    数值计算

    # 读取图片
    img1 = cv2.imread("picture.jpg")
    img2 = cv2.imread("picture2.jpg")
    img1 = cv2.resize(img1, (382, 383))  # 转换成一样大小
    
    # 调试输出
    print("image 1:\n", img1[:5, :, 0])
    print("image 2:\n", img2[:5, :, 0])
    
    # 加10
    img_new = img1 + 10
    print("image_new:\n", img_new[:5, :, 0])
    
    # 超过255的变成数值%256
    img_add = img1 + img2
    print("image_add:\n", img_add[:5, :, 0])
    
    # 超过255的变成255
    img_add2 =cv2.add(img1, img2)
    print("image_add2:\n", img_add2[:5, :, 0])
    

    输出结果:

    image 1:
    [[206 206 206 ... 206 206 206]
    [208 207 208 ... 207 207 208]
    [208 207 208 ... 208 208 208]
    [209 208 209 ... 209 209 209]
    [209 209 209 ... 209 209 209]]
    image 2:
    [[187 187 187 ... 223 222 222]
    [187 187 187 ... 224 224 223]
    [187 187 187 ... 225 225 224]
    [187 187 187 ... 225 225 225]
    [187 187 187 ... 223 224 225]]
    image_new:
    [[216 216 216 ... 216 216 216]
    [218 217 218 ... 217 217 218]
    [218 217 218 ... 218 218 218]
    [219 218 219 ... 219 219 219]
    [219 219 219 ... 219 219 219]]
    image_add:
    [[137 137 137 ... 173 172 172]
    [139 138 139 ... 175 175 175]
    [139 138 139 ... 177 177 176]
    [140 139 140 ... 178 178 178]
    [140 140 140 ... 176 177 178]]
    image_add2:
    [[255 255 255 ... 255 255 255]
    [255 255 255 ... 255 255 255]
    [255 255 255 ... 255 255 255]
    [255 255 255 ... 255 255 255]
    [255 255 255 ... 255 255 255]]

    图像融合

    cv2.addWeighted可以帮助我们融合两张图片.

    格式:

    cv2.addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
    

    例子:

    # 读取数据
    cat = cv2.imread("cat.jpg")
    dog = cv2.imread("dog.jpg")
    
    # 输出维度
    print(cat.shape)  # (554, 640, 3)
    print(dog.shape)  # (611, 640, 3)
    
    # 裁剪大小
    dog = cv2.resize(dog, (640, 554))
    print(dog.shape)  # (554, 640, 3)
    
    # 图像融合
    res = cv2.addWeighted(cat, 0.7, dog, 0.3, 0)
    cv2.imshow("res", res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    输出结果:

    在这里插入图片描述

    jsjbwy
    下一篇:没有了