当前位置: 首页 > news >正文

OpenCV 伽马校正函数gammaCorrection()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

该函数用于对输入图像应用伽马校正(Gamma Correction),这是一种非线性的图像处理技术,主要用于调整图像的亮度和对比度。
给定一个输入的 BGR 或灰度图像以及一个常数 gamma,对图像在 [0, 255] 区间上应用幂律变换(即伽马校正),并返回结果图像。

函数原型

void cv::intensity_transform::gammaCorrection 	
(const Mat  	input,Mat &  	output,const float  	gamma 
) 		

参数

  • input:输入BGR或灰度图像。
  • output:伽马校正后的结果图像。
  • gamma:在公式 c*r^gamma中的常数,其中 r 是像素值。

示例代码


#include <opencv2/intensity_transform.hpp>
#include <opencv2/opencv.hpp>void applyGammaCorrection( const cv::Mat& input, cv::Mat& output, float gamma )
{// 创建查找表cv::Mat lookUpTable( 1, 256, CV_8U );uchar* p = lookUpTable.ptr();for ( int i = 0; i < 256; ++i )p[ i ] = cv::saturate_cast< uchar >( pow( i / 255.0, gamma ) * 255.0 );// 应用查找表cv::LUT( input, lookUpTable, output );
}int main()
{// 读取图像cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );if ( img.empty() ){std::cerr << "无法加载图像!" << std::endl;return -1;}cv::Mat result;// 设置伽马值float gamma = 1.5f;  // 你可以根据需要调整这个值// 使用 OpenCV 提供的 gammaCorrection 函数cv::intensity_transform::gammaCorrection( img, result, gamma );// 显示原图和处理后的图像cv::imshow( "Original Image", img );cv::imshow( "Gamma Corrected Image", result );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述


文章转载自:
http://autarchy.wjrtg.cn
http://chileanize.wjrtg.cn
http://applause.wjrtg.cn
http://breastsummer.wjrtg.cn
http://champion.wjrtg.cn
http://anomalure.wjrtg.cn
http://cesarean.wjrtg.cn
http://cafe.wjrtg.cn
http://antenuptial.wjrtg.cn
http://carey.wjrtg.cn
http://arsenopyrite.wjrtg.cn
http://caisson.wjrtg.cn
http://chamois.wjrtg.cn
http://braincase.wjrtg.cn
http://amadis.wjrtg.cn
http://alcor.wjrtg.cn
http://borosilicate.wjrtg.cn
http://anglia.wjrtg.cn
http://arbutus.wjrtg.cn
http://caradoc.wjrtg.cn
http://azoth.wjrtg.cn
http://becalmed.wjrtg.cn
http://bolognese.wjrtg.cn
http://chromatrope.wjrtg.cn
http://bugle.wjrtg.cn
http://archangel.wjrtg.cn
http://acquirement.wjrtg.cn
http://bobbysocks.wjrtg.cn
http://ablebodied.wjrtg.cn
http://chernozem.wjrtg.cn
http://www.dtcms.com/a/280643.html

相关文章:

  • MODIS_Landsat_Sentinel2星源分幅简述【20250715】
  • 视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)
  • 【YOLOv11-目标检测】06-模型部署(C++)
  • 06_pt-table-sync 工具解决 MySQL 主从数据不一致
  • conda环境保存(后期再来整理)
  • etcd自动压缩清理
  • 2-Nodejs运行JS代码
  • iOS高级开发工程师面试——Swift
  • Fiddler 中文版抓包实战 构建标准化调试流程提升团队协作效率
  • echarts 绘制3D中国地图
  • React强大且灵活hooks库——ahooks入门实践之开发调试类hook(dev)详解
  • PostgreSQL 数据库中 ETL 操作的实战技巧
  • React源码6 三大核心模块之一:commit, finishConcurrentRender函数
  • 前端学习笔记:React.js中state和props的区别和联系
  • haproxy负载均衡
  • AntV G6 基础元素详解(React版)
  • 【PTA数据结构 | C语言版】创建哈夫曼树
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第二十一讲)
  • 【PDF识别改名】使用京东云OCR完成PDF图片识别改名,根据PDF图片内容批量改名详细步骤和解决方案
  • 同样是“跳转”,为何forward地址栏不变,redirect会变?
  • RNN、GRU 与 LSTM 计算成本深入对比
  • 基于光场相机的激光增材制造熔池温度场原位多眼监测​​
  • 【zynq7020】PL的“Hello LED”
  • FPGA高端图像ISP培训课程,提供工程源码+视频教程+FPGA开发板
  • Softhub软件下载站实战开发(十八):软件分类展示
  • 使用LNMP一键安装包安装PHP、Nginx、Redis、Swoole、OPcache
  • Vmware中安装的CentOS7如何扩展硬盘大小
  • 语言模型玩转3D生成:LLaMA-Mesh开源项目
  • 【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(二):封装自定义可复用组件
  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理