图像预处理——对数变换

<span style="font-family: Arial, Helvetica, sans-serif;"></pre>图像预处理——对数变换  算法实现<p></p><p>对数变换可实现图像的水平平移、竖直平移、对称变换等操作</p><p>也可实现图像灰度的扩展和压缩功能。</p><p>实现代码如下:</p><p> </p><pre code_snippet_id="661082" snippet_file_name="blog_20150507_1_1256646" name="code" class="cpp"></pre><pre name="code" class="cpp"></span>

<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">int LogTranslation(Mat srcImg, Mat dstImg, float a, float b, float c)</span>
 
{
	Mat logTable(1,256,CV_8U);
	double temp;
	for ( int i = 0; i < 256; i++ )
	{
		temp = log((double)i+1)/b + a;  //对数变换  g(x,y) = ln(f(x,y)+1)/(b*ln(c)) + a;
		
		if (temp < 0.0)
		{
			temp = 0.0;
		}
		else if (temp > 255.0)
		{
			temp = 255.0;
		}


		logTable.data[i] = int(temp + 0.5); //四舍五入
	}
	LUT(srcImg,logTable,dstImg);
	imshow("Log", dstImg);
	waitKey(0);
	return 1;
}


相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页