- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
该函数对输入图像执行对数变换(Log Transform),这是一种常用的非线性强度变换方法,用于增强图像中较暗区域的对比度。
给定一个输入的 BGR 或灰度图像以及常数 c,在 [0, 255] 区间上对该图像应用对数变换,并返回结果图像。
函数原型
cpp
void cv::intensity_transform::logTransform
(
const Mat input,
Mat & output
)
参数
-
input 输入 BGR 或灰度图像。
-
output 对数变换后的结果图像。
代码示例
cpp
#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", cv::IMREAD_GRAYSCALE );
if ( img.empty() )
{
std::cerr << "无法加载图像!" << std::endl;
return -1;
}
cv::Mat result;
// 应用对数变换
cv::intensity_transform::logTransform( img, result );
// 显示结果
cv::imshow( "Original Image", img );
cv::imshow( "Log Transformed Image", result );
cv::waitKey( 0 );
return 0;
}
运行结果
