- 操作系统: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.3imshow("Original", src);imshow("Enhanced", dst);waitKey(0);return 0;
}