- 操作系統: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;
}