题目:定义一个图像的对比度拉伸函数,函数名为myGrayScaleTransform,将输入图像的对比度线性平滑地拉伸到指定的灰度级区间,要求该函数的输入参数包括处理前的灰度图像img1 (如EXP1A.tif)、期望灰度级的参数区间para,输出参数为处理后的灰度图像img2。
定义函数为img2 = myGrayScaleTransform (img1, para),其中,参数para是一个长度为2的一维数组,用于表示期望灰度级区间的最小值和最大值,要求最小和最大值的取值范围限定在区间[0 255]之间,且最小值不能超过最大值,如指定区间为para = [50 120];线性平滑拉伸可以参考数据归一化的计算原理。
实现思路:
1.定义函数:
我们定义的函数有两个参数:图像img1和灰度级区间最小值、最大值的二维数组para。首先对para参数进行判断,若灰度级的最大值和最小值不符合要求则报错。
若输入的参数没有问题,就开始对图像进行处理:先使用im2double函数将uint8类型的图像数据转换为double类型的,分别取图像矩阵的最大值和最小值,使用公式利用公式f=(img – min_i)/(max_i – min_i)把数据范围压缩到0~1之间的数值,即数据的归一化,以便计算。再使用公式img2 = (b - a) .