注:本系列来自于图像处理课程实验,用Matlab实现最主要的图像处理算法
图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境。灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对灰度值分布的变换。
1.灰度线性变换
(1)线性变换函数
原图向灰度值为g。通过线性函数f(x)=kx+b转换为f(g)得到灰度的线性变换。
(2)代码实现
Matlab中支持矩阵作为函数參数传入。定义一个线性转换函数,利用Matlab矩阵操作,用一行代码就可以对整个二维图像矩阵中所有点的灰度进行线性变换:
function [ new ] = LinearTransformFunc( original, k, d )
new = original * k + d;
end
当中k和d是线性函数的斜率和截距。由用户输入指定,用户输入为空时赋予默认值:
input函数获取用户输入
isempty推断用户输入是否为空:
k = input('please input the slope(k) of grayscale linear transformation function:\n');
b = input('please input the intercept(b) of grayscale linear transformation function:\n');
if isempty(k)
k = 1;
end
if isempty(b)
b = 0;