图像处理学习笔记03:灰度变换(二)

对数及对比度扩展变换

对数变换表达式 g=c*log(1+(f))
这个变换与之前的gamma曲线相似,但是区别在于对数曲线的形状是固定的,gamma曲线的函数形状可以改变。c是尺寸比例系数,f是原灰度值,g为变化后的灰度值。函数的自变量为低值时,曲线的斜率很高;自变量为高值时,曲线的斜率很低。这种变换可以增强图像中较暗部分的细节,从而用来扩展被压缩的高值图像中的较暗像素。
mat2gray函数,将矩阵的值限制在[0 1]之间,再使用im2unit8将值限制在[0 255]之间。
例 例用对数变换处理傅里叶频谱

clear;
clf;
clc;
f=imread("Fig0205(a).tif");
figure;
subplot(1,2,1);
imshow(f);
g=im2uint8(mat2gray(log(1+double(f))));
% g=log(1+double(f));
subplot(1,2,2);
imshow(g);

图像处理学习笔记03:灰度变换(二)_第1张图片

灰度阈值变换

将让图像中灰度值小于某一个值的灰度调为0,将灰度值大于某个值的灰度调为L-1.也就是将一幅灰度图像转化为二值图像。
阈值变换的相关函数主要有两个

  1. im2bw函数
  2. graythresh函数

语法形式
BW=im2bw(I,level)参数I表示原图像,level表示设定的阈值大小,他是0-1之间的双精度浮点型数据,具体的阈值为L*level。
thresh=graythresh(I)可以自动选择最优的变化阈值。
例 展示两种不同函数的阈值变换效果。

clf;
clear;
clc;
i=imread('rice.png');
thresh=graythresh(i);
bw1=im2bw(i,thresh);
bw2=im2bw(i,0.4);
subplot(1,3,1);
imshow(i);
title('原图像');
subplot(1,3,2);
imshow(bw1);
title('最优阈值');
subplot(1,3,3);
imshow(bw2);
title('自定义阈值');

图像处理学习笔记03:灰度变换(二)_第2张图片

对比拉伸

例 使用dipum工具箱中的intrans函数对比拉伸增强骨骼结构

clf;
clear;
clc;
f=imread('Fig0206(a).tif');
g=intrans(f,'stretch',mean2(tofloat(f)),0.9);
figure;
subplot(1,2,1);
imshow(f);
subplot(1,2,2);
imshow(g)

图像处理学习笔记03:灰度变换(二)_第3张图片

你可能感兴趣的:(数字图像处理,对数变换,对比拉伸)