对数变换主要用于将图像的低灰度部分进行扩展,高灰度部分进行压缩,最终达到增强图像低灰度部分的细节内容。
对数变换的公式为:
cv::Mat imageLog(src.size(), CV_32FC3);
for (int i = 0; i < src.rows; i++)
{
for (int j = 0; j < src.cols; j++)
{
imageLog.at<cv::Vec3f>(i, j)[0] = log(1 + src.at<cv::Vec3b>(i, j)[0]);