【个人笔记】05 图像像素的算术操作

个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚

05 图像像素的算术操作

opencv知识点:

  • 图像像素算术操作 - 运算符
  • 值的截断 - saturate_cast<>()
  • 图像像素算术操作 - 专用函数

本课所解决的问题:

  • 如何改变图像的亮度?
  • 如何进行图像像素的算术操作?
  • 如何对可能溢出的值进行截断?

1.改变图像亮度

对于改变图像的亮度,我们可以采用图像像素的算术操作实现

本文采用如下两种方法演示

  • 四种运算运算符
  • 四种专用函数

2.四种运算符和截断

运算符

首先,我们采用运算符的方式

//函数定义
void operators_demo(Mat& image);
//函数实现
void QuickDemo::operators_demo(Mat& image) {
   

	Mat dst;

	dst = image + Scalar(50, 50, 50);
	//dst = image - Scalar(50, 50, 50);
	//dst = image * Scalar(5, 5, 5);//会溢出
	//dst = image / Scalar(5, 5, 5);//会截断为0
	imshow("加法操作", dst);

}

加法:可能会溢出

在这里插入图片描述

减法: 会自动截断为0

在这里插入图片描述 乘法

可能会溢出,提示溢出的错误。
本案例就溢出了,所以没有结果展示

除法:如果除数较大,结果最终会被自动截断为0

在这里插入图片描述

截断函数

采用运算符时加法,乘法有溢出隐患,有什么办法解决吗?
这就用到了saturate_cast<uchar>,当使用它时会保证BGR图像的像素值在[0,255]

对于截断的演示,我们用运算符加法演示

void QuickDemo
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啦啦啦大赛第大所

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值