写一个非线性变换MATLAB的代码
时间: 2023-05-25 18:03:39 浏览: 107
非线性变换 matlab
3星 · 编辑精心推荐
以下是一个简单的非线性变换MATLAB代码,它通过对输入图像进行幂律变换来提高图像的对比度:
```matlab
% 输入图像
img = imread('lena.png');
% 在0~1范围内归一化
img = im2double(img);
% 幂律变换参数
gamma = 2;
c = 1;
% 进行幂律变换
img_out = c * img .^ gamma;
% 可视化输出图像
imshow(img_out);
```
这个代码中,我们首先使用`imread`读入一张图像,然后使用`im2double`函数将像素值范围从0~255归一化到0~1之间。下一步是选择幂律变换的参数:`gamma`是控制幂函数的形状,越大表示输出像素值的增长越快,`c`是一个比例因子,用于缩放输出像素值范围。最后,我们应用幂律变换到输入图像上,输出变换后的图像。最后,用`imshow`函数可视化输出结果。
阅读全文