个人资料,仅供学习使用
修改时间——2022年2月10日 09:16:31
学习课程:OpenCV4 图像处理与视频分析实战教程
课程讲师:贾志刚

04 图像算术操作+调整亮度与对比度+伪装透明度

opencv知识点:

  • 图像像素算术操作 - 运算符
  • 值的截断 - saturate_cast<>
  • 图像像素算术操作 - 专用函数
  • 创建滚动条 - createTrackbar
  • 处理滚动条事件的函数 - TrackbarCallback(通常由用户自写)
  • 亮度与对比度的概念
  • 巧用图片融合 - addWeighted

本课所解决的问题:

  • 如何改变图像的亮度?
  • 如何进行图像像素的算术操作?
  • 如何对可能溢出的值进行截断?
  • 如何创建滚动条?
  • 如何通过滚动条进行亮度调整?
  • 如何利用createTrackbar的userdata?
  • 调整亮度/对比度的内涵是什么?
  • 如何利用图片融合addWeighted调整亮度/对比度?

1.图像算术操作

关于图像的算术操作,可以阅读 05 图像像素的算术操作,文章中非常详细。

2.调整亮度与对比度

关于调整亮度与对比度,可以阅读如下两篇文章,文章中非常详细。

  • 06 滚动条操作1.0 - 调整图像亮度
  • 07 滚动条操作2.0 - 调整亮度与对比度

3.伪装透明度

上文中,我们通过addWeighted实现了调整亮度与对比度,其实它还有一种用法

  • 伪装透明度

预设black = Scalar(127,127,127)通过计算如下公式实现伪装透明度

  • dst = src * 0.5 + black * 0.5 + 0
#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;
using namespace std;int main(int argc, char** agrv) {Mat src = imread("D:/WorkSpace/Opencv/images/hahaha.jpg");if (src.empty()) {printf("could not find image file");return -1;}namedWindow("input",WINDOW_AUTOSIZE);imshow("input", src);Mat dst;Mat black = Mat::zeros(src.size(),src.type());black = Scalar(127, 127, 127);addWeighted(src, 0.5, black, 0.5, 0, dst);imshow("伪装透明度", dst);waitKey(0);destroyAllWindows();return 0;
}

本课所用API查阅

Scalar

add

subtract

multiply

divide

saturate_cast<>

有11种重载,对应11种不同的的数据类型


uchar a = saturate_cast<uchar>(-100); // a = 0 (UCHAR_MIN)
short b = saturate_cast<short>(33333.33333); // b = 32767 (SHRT_MAX)

creatTrackbar


TrackbarCallback

addWeighted




dst = src1*alpha + src2*beta + gamma;

【个人笔记】OpenCV4 C++ 图像处理与视频分析 04课相关推荐

  1. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 09课

    个人资料,仅供学习使用 修改时间--2022年2月14日 10:59:22 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 09 图像直方图+直方图均衡化+直方图比较 open ...

  2. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 12课

    个人资料,仅供学习使用 修改时间--2022年2月19日 14:57:51 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 12 图像模糊 opencv知识点: 高斯模糊 - ...

  3. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 11课

    个人资料,仅供学习使用 修改时间--2022年2月19日 13:28:28 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 11 图像卷积+卷积边缘处理 opencv知识点: ...

  4. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 10课

    个人资料,仅供学习使用 修改时间--2022年2月14日 10:59:22 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 10 图像查找表与颜色表 opencv知识点: 查找 ...

  5. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 08课

    个人资料,仅供学习使用 修改时间--2022年2月13日 10:31:08 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 08 图像通道分离合并与混合 opencv知识点: ...

  6. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 07课

    个人资料,仅供学习使用 修改时间--2022年2月13日 09:51:04 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 07 图形绘制与填充+文字绘制+随机绘制+矩形ROI ...

  7. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 03课

    个人资料,仅供学习使用 修改时间--2022年2月7日 08:10:05 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 03 Mat 概念介绍+对象创建与赋值+像素读写 op ...

  8. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 01课

    个人资料,仅供学习使用 修改时间--2022年2月5日 09:43:04 学习课程:OpenCV4 图像处理与视频分析实战教程 课程讲师:贾志刚 01 OpenCV4 框架介绍+环境搭建+显示图片 o ...

  9. 15 OpenCV4图像处理与视频分析实战(50.背景分析-)

    15 OpenCV4图像处理与视频分析实战(50.背景分析-) 一.50.背景分析- 来自网易云课堂(贾志刚) 一.50.背景分析- 大家我们就从中呢学会了一些东西,我们如果想把一些就是呃,更多的一些 ...

最新文章

  1. mysql proxy 延迟严重_使用MySQL Proxy解决MySQL主从同步延迟
  2. python numpy库安装-Python Numpy库安装与基本操作示例
  3. haxe php,Haxe学习笔记(一) Haxe:一次编码全平台编译的神话
  4. 关于Web报表FineReport打印的开发应用案例
  5. IDEA查找接口实现类及快速实现接口的方法及常用快捷键
  6. piovt table python_python – Pandas:pivot和pivot_table之间的区别...
  7. mongodb防火墙配置
  8. python怎么理解_讨论 - 廖雪峰的官方网站
  9. 快速入门:使用 Docker 运行 SQL Server 容器映像
  10. Opencv4.5.5 + Opencv4.5.5_contrib 图像拼接
  11. pyqt5 qwidget 边框_实战PyQt5: 116-画刷类QBrush
  12. shell入门(二)——面试题实例
  13. android shell强制删除文件夹_原来手机中的这些文件可以删除,难怪手机越用越卡!...
  14. paip.提升性能---string split
  15. 矩阵理论第一章-特征值与特征向量
  16. 【神经网络分类器】(三)深度学习发展史——从深度信念网络到AlexNet
  17. 一行JS代码实现ie浏览器升级弹窗
  18. Linux:crond任务调度之at定时任务
  19. Android系统开发篇(二) —— 建立Android系统开发环境之Ubuntu 20.04.4 LTS
  20. Linux 自带神器 logrotate 详解

热门文章

  1. 普通队列(数组实现)
  2. redis(版本redis-5.0.2)的安装步骤
  3. 涨价潮或延续至下半年 芯片国产化遇机遇
  4. Windows Server 林功能级别详解
  5. 【Python】区分List 和String
  6. LastPass 的开源替代品
  7. IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源
  8. python 学习笔记(1)-转载
  9. JSP学习笔记1:JSP生命周期
  10. 如何在vs2010中使用ConfigurationManager