图像上的算术运算(1)

一、图像加法

两幅图像的大小,类型必须一致,或者第二个 图像可以是一个标量值。
第一种方法:
直接相加:

import cv2 as cv
import numpy as np


img_1 = cv.imread("D://opencv_test//test_a.jpg")
img_2 = cv.imread("D://opencv_test//test_c.jpg")
img_3 = img_1 + img_2
cv.imshow("win_1", img_1)
cv.imshow("win_2", img_2)
cv.imshow("win_3", img_3)
cv.waitKey(0)


cv.destroyAllWindows()

第二种方法:
用到的函数:
cv.add()
参数是要相加的两张图像的名字

import cv2 as cv
import numpy as np


img_1 = cv.imread("D://opencv_test//test_a.jpg")
img_2 = cv.imread("D://opencv_test//test_c.jpg")
cv.imshow("win_1", img_1)
cv.imshow("win_2", img_2)
cv.imshow("win_4", cv.add(img_1, img_2))#相加的图像相比第一种方法更加白,我也不知道为什么
cv.waitKey(0)


cv.destroyAllWindows()

二、图像混合

用到的函数:
cv.addWeighted()
五个参数:

  1. 第一张图像的名字
  2. 第一张图像占比
  3. 第二张图像的名字
  4. 第二章图像占比
  5. 默认0(我也不知道)
    用法见下:
import cv2 as cv
import numpy as np


img_1 = cv.imread("D://opencv_test//test_a.jpg")
img_2 = cv.imread("D://opencv_test//test_c.jpg")
img_3 = cv.addWeighted(img_1, 0.7, img_2, 0.3, 0)
cv.imshow("win_1", img_1)
cv.imshow("win_2", img_2)
cv.imshow("win_3", img_3)
cv.waitKey(0)


cv.destroyAllWindows()

扩展:
结合滑动条:

import cv2 as cv
import numpy as np


def nothing(x):
    pass

img_1 = cv.imread("D://opencv_test//test_a.jpg")
img_2 = cv.imread("D://opencv_test//test_c.jpg")
cv.namedWindow("win")
cv.createTrackbar("X", "win", 1, 10, nothing)
while(1):
    a = cv.getTrackbarPos("X", "win")
    img_3 = cv.addWeighted(img_1, a/10, img_2, 1-a/10, 0)
    cv.imshow("win", img_3)
    if(cv.waitKey(10)&0xFF == 27):
        break


cv.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值