当前位置: 首页 > 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://www.lryc.cn/news/589072.html

相关文章:

  • PG备份一(逻辑备份)
  • 算法与前端的可访问性
  • Linux系统调优和工具
  • OpenCV-Python Tutorial : A Candy from Official Main Page(三)
  • 【Linux系统】命令行参数和环境变量
  • 涨停板池,跌停板池,炸板池,次新股池,强势股池数据接口
  • SSM框架学习DI入门——day2
  • Flutter瀑布流布局深度实践:打造高性能动态图片墙
  • 基于Ruoyi和PostgreSQL的统一POI分类后台管理实战
  • IPSec和HTTPS对比(一)
  • 前端学习笔记:React.js中state和props的区别和联系
  • 数字影像新风口 入驻国际数字影像产业园解锁151项全周期服务
  • 20.如何在 Python 字典中找到最小值或最大值的键?
  • 关于list
  • 使用 PowerMockito 模拟 new A() 行为
  • 文心一言开源版部署及多维度测评实例
  • linux-线程互斥
  • 硬件设计学习DAY1——电源的分类
  • HAProxy 简介及配置文件详解
  • nlp论文:分本分类:《Bag of Tricks for Efficient Text Classification》
  • 渭河SQL题库-- 来自渭河数据分析
  • 5.数据归一化
  • Python爬虫实战:研究Mistune库相关技术
  • UE5多人MOBA+GAS 23、制作一个地面轰炸的技能
  • Typecho插件开发:实现文章字数统计与阅读时长计算功能
  • Docker镜像导入、导出操作指南
  • 大型语言模型(LLM)的技术面试题
  • 如何通过 WebSocket 接口订阅实时外汇行情数据(PHP 示例)
  • 深入探讨Hadoop YARN Federation:架构设计与实践应用
  • CentOS 8-BClinux8.2更换为阿里云镜像源:保姆级教程