OpenCV 学习(图像的基本运算)

图像的基本运算有很多种,比如两幅图像可以相加、相减、甚至可以相乘、相除。图像可以放大、缩小、旋转,还可以截取中间的一副子图,各个颜色通道还可以分别提取。总之,对于图像可以进行的基本运算非常的多,这里不可能全部都写出来,只是挑了些特别常用的简单的写写。

图像间的加减乘除
OpenCV 中提供了如下的一些函数,用来进行图像的加减乘除。

void add(InputArray src1, InputArray src2, OutputArray dst,
InputArray mask=noArray(), int dtype=-1);

void subtract(InputArray src1, InputArray src2, OutputArray dst,
InputArray mask=noArray(), int dtype=-1);

void multiply(InputArray src1, InputArray src2,
OutputArray dst, double scale=1, int dtype=-1);

void divide(InputArray src1, InputArray src2, OutputArray dst,
double scale=1, int dtype=-1);

void divide(double scale, InputArray src2,
OutputArray dst, int dtype=-1);

void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst);

void addWeighted(InputArray src1, double alpha, InputArray src2,
double beta, double gamma, OutputArray dst, int dtype=-1);

这些函数都要求相加的两幅图像具有相同的尺寸,并且像素类型是相同的。

与此类似的还有位运算函数:

void bitwise_and(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask=noArray());

void bitwise_or(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask=noArray());

void bitwise_xor(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask=noArray());

void bitwise_not(InputArray src, OutputArray dst,
InputArray mask=noArray());
用法很简单,就不多介绍了。

另外一个比较常用的运算是求两幅图像像素的差的绝对值。

void absdiff(InputArray src1, InputArray src2, OutputArray dst);

还有些函数是对单幅图像进行操作的,比如对每个像素的值取平方、平方根、对数等。

void sqrt(InputArray src, OutputArray dst);
void pow(InputArray src, double power, OutputArray dst);
void exp(InputArray src, OutputArray dst);
void log(InputArray src, OutputArray dst);

这里给出的函数很有限。但是,基本上我们能想到的各种操作,OpenCV 的作者都替我们实现了,需要时可以现查。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值