OpenCV多尺度图像增强算法函数BIMEF()
- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
OpenCV 中 intensity_transform 模块提供的一个用于图像增强的函数,全称为:
"Brightness Increasing with salient features and Contrast Enhancement" (BIMEF)
这是一个经典的多尺度图像增强算法,主要用于改善暗光图像的亮度与对比度,同时保留图像中的显著特征(如边缘、纹理等)。
BIMEF 是由 K.-K. Ma 和 Xiao Fu 等人提出的一种适用于低光照图像增强的方法,其核心思想是:
- 提升图像亮度
- 增强图像对比度
- 保留显著特征(如边缘、纹理)
该方法结合了物理模型与图像统计特性,使用一个基于 Retinex 理论的多尺度增强策略。
函数原型
void cv::intensity_transform::BIMEF
(InputArray input,OutputArray output,float mu = 0.5f,float a = -0.3293f,float b = 1.1258f
)
参数
- input:输入彩色图像。
- output:结果图像。
- mu:增强比率。
- a:相机响应函数(CRF)中的 a 参数。
- b:相机响应函数(CRF)中的 b 参数。
代码示例
#include <opencv2/intensity_transform.hpp>
#include <opencv2/opencv.hpp>int main()
{// 读取图像cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );if ( img.empty() ){std::cerr << "Could not load image!" << std::endl;return -1;}cv::Mat enhanced;// 调用 BIMEF 进行图像增强cv::intensity_transform::BIMEF( img, enhanced );// 显示结果cv::imshow( "Original", img );cv::imshow( "Enhanced (BIMEF)", enhanced );cv::waitKey( 0 );return 0;
}