OpenCV 对数变换函数logTransform()

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

运行结果