opencv图像的算术运算

举报
lqj_本人 发表于 2023/03/14 11:54:22 2023/03/14
【摘要】 opencv图像的算术运算

图像运算

加法运算:add(src1, src2, dst=None, mask=None, dtype=None)
减法运算:subtract(src1, src2, dst=None, mask=None, dtype=None)
乘法运算:multiply(src1, src2, dst=None, scale=None, dtype=None)
除法运算:divide(src1, src2, dst=None, scale=None, dtype=None)
幂运算:pow(src, power, dst=None)
开方运算:sqrt(src, dst=None)
自然常数e为底的指数函数:exp(src, dst=None)
对数运算:log(src, dst=None)
融合权重加法:addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
位与运算:bitwise_and(src1, src2, dst=None, mask=None)
位或运算:bitwise_or(src1, src2, dst=None, mask=None)
位异或运算:bitwise_xor(src1, src2, dst=None, mask=None)
位非运算:bitwise_not(src, dst=None, mask=None)


我们以一种加法举例,剩下的大家留给大家去尝试!

图像的加法运算

add opencv使用add来执行图像的加法运算

图像就是矩阵,图片的加法运算就是矩阵的加法运算,这就是要求加法运算的两张图shape必须是相同的。

#图片加法
import cv2
import numpy as np
 
cat = cv2.imread('1.PNG')
dog = cv2.imread('2.PNG')
 
#加法要求两个图片大小一致
print(cat.shape)
print(dog.shape)
#把猫的图片变小
#注意坑,opencv中resize中传递新的宽度和高度,先传递宽度在传递高度
#所有的都是先列后行,和shape的输出相反
new_cat = cv2.resize(cat,(dog.shape[:-1][::-1]))
#和单个数字运算,超过255会被截断,相当于%256
print(new_cat[0:5,0:5])
print(new_cat[0:5,0:5] + 100)
cv2.imshow('cat_dog',np.hstack((new_cat,dog)))
#加法,加法的效果是加起来如果超出了255,同意变成255
new_img = cv2.add(new_cat,dog)
print(new_img[0:5,0:5])
cv2.imshow('cat_dog',np.hstack((new_cat,dog,new_img)))
 
cv2.waitKey(0)
cv2.destroyAllWindows()

效果展示

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。