- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
此滤波器增强特定图像的细节。
cv::detailEnhance用于增强图像的细节,通过结合空间域和频率域的处理,提升图像中特定细节的清晰度和对比度。其核心原理基于多尺度Retinex算法(Multi-Scale Retinex),通过多尺度高斯滤波和加权平均,突出图像的细节信息。
函数原型
void cv::detailEnhance
(
InputArray src,
OutputArray dst,
float sigma_s = 10,
float sigma_r = 0.15f
)
参数
-
参数src 输入8位三通道图像。
-
参数dst 与src具有相同尺寸和类型的输出图像。
-
参数sigma_s 范围在0到200之间。
-
参数sigma_r 范围在0到1之间。
代码示例
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
// 读取输入图像
Mat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/jiangnan.jpg" );
if ( src.empty() )
{
cout << "无法读取图像!" << endl;
return -1;
}
Mat dst;
// 正确调用方式:按顺序传递数值
detailEnhance(src, dst, 20, 0.3); // sigma_s=20, sigma_r=0.3
imshow("Original", src);
imshow("Enhanced", dst);
waitKey(0);
return 0;
}