美文网首页
图像的点运算2

图像的点运算2

作者: 还浴月 | 来源:发表于2018-07-16 09:17 被阅读0次

灰度的线性变换

线性灰度变换函数f(x)是一个一维线性函数。可以用

Db=f(Da)=kDa+b

进行表示,其中k是线性函数的斜率,k是线性函数的截距,而Da表示输入图像的灰度,Db表示输出图像的灰度。

  • 当k>1的时候,输出图像的对比度将会增大;反之,输出图像的对比度将会减小
  • 当k=1且b不等于0的时候,操作仅使所有的像素的灰度值上移或下移,效果也就是让亮度变大或者变小。
  • 当k<0,暗区域将会变亮,亮区域将会变暗,可能是由于像素亮度达到饱和,也就是超过[0,255]这个区间,从而丢失了一部分细节。
  • 特殊情况,当k=1,b=0时,输入输出图像相同;当k=-1,b=255时,输入输出图像灰度正好反转(可以用于增强暗色图像中亮度较大的细节部分)。

用matlab进行了不同参数的基本线性变换的操作,如下,

I = imread('test.bmp');     % 读入原图像

I = im2double(I);           % 转换数据类型为double
[M,N] = size(I);            % 计算图像面积

figure(1);              % 打开新窗口
imshow(I);              % 显示原图像
title('原图像');

figure(2);              % 打开新窗口
[H,x] = imhist(I, 64);      % 计算64个小区间的灰度直方图
stem(x, (H/M/N), '.');      % 显示原图像的直方图
title('原图像');

% 增加对比度
k = 2; b = -55;
O = k .* I + b/255;              %这里是由于之前进行了double数据类型的
                                 %转换,导致数据均为(0,1)因此需要除以255
figure(3);
subplot(2,2,1);
imshow(O);
title('k = 2 b = -55 增加对比度');

figure(4);
subplot(2,2,1);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('k = 2 b = -55 增加对比度');

% 减小对比度
k = 0.5; b = -55;
O = k .* I + b/255;

figure(3);
subplot(2,2,2);
imshow(O);
title('k = 0.5 b = -55 减小对比度');

figure(4);
subplot(2,2,2);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('k = 0.5 b = -55 减小对比度');

% 线性增加亮度
k = 1; b = 55;
O = k .* I + b/255;

figure(3);
subplot(2,2,3);
imshow(O);
title('k = 1 b = 55 线性平移增加亮度');

figure(4);
subplot(2,2,3);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('k = 1 b = 55 线性平移增加亮度');

% 反相显示
k = -1; b = 255;
O = k .* I + b/255;

figure(3);
subplot(2,2,4);
imshow(O);
title('k = -1 b = 255 反相显示');

figure(4);
subplot(2,2,4);
[H,x] = imhist(O, 64);
stem(x, (H/M/N), '.');
title('k = -1 b = 255 反相显示');

其运行结果如下,可以看到,原图像为


原图像

原图像的归一化灰度直方图为


原图像的归一化灰度直方图

分别进行线性变换


线性变换结果 进行线性变换后的灰度直方图

可以看出,改变对比度是对直方图的缩放与平移,改变亮度只是平移直方图在横轴上的位置,而反向则是将直方图水平镜像

灰度对数变换

对数变换的一般表达式如下,

t=clog(1+s)

其中,c为尺度比例常数,s为源灰度值,t为变换后的目标灰度值。

y=log(x+1.5)

由该函数曲线,我们可以看到,函数自变量在低值的时候,曲线斜率很高,自变量在高值的时候,曲线斜率很低,由此可以得知,在实际应用的时候,这样做可以用来增强一副图像较暗部分的细节。

对数变换效果

相关文章

  • 图像的点运算2

    灰度的线性变换 线性灰度变换函数f(x)是一个一维线性函数。可以用 进行表示,其中k是线性函数的斜率,k是线性函数...

  • Opencv第六课--图像的运算

    数字图像的运算 图像处理中最重要的内容之一就是图像的运算,图像像素的运算包括点运算、代数运算、逻辑运算,图像的几何...

  • 图像的基本操作实现

    图像的点运算实现 线性点运算的实现 图像的线性点运算的实现代码如下所示: 图像线性点运算的实现效果如上图所示,当:...

  • ML之图像处理常识篇1

    基本常识篇 1、数字图像: 2、数字图像的运算:全局运算,点运算,局部运算 3、噪声:加性或乘性 4、对比度:灰度...

  • OpenCV-Python学习(七):图像的基本运算及mask掩

    目录: 1.图像的基本运算加、减法图像混合按位运算 2.mask掩膜 一、图像的基本运算 加、减法 饱和运算:当运...

  • 图像处理算法的理论与实践

    图像处理算法的理论与实践 1. 图像的点运算 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算,通常用于改...

  • 图像的点运算3

    伽马变换 伽马变换又名指数变换或幂次变换,是另一种常用的灰度非线性变换。 一般表达式如下, 其中,x与y的取值范围...

  • 图像的点运算1

    灰度直方图 灰度直方图是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出...

  • Core-L02-图型的算数运算

    目标 学习几个图像的算数运算,例如:加、减、位运算。 学习的函数,包括:cv2.add(),cv2.addWeig...

  • 图像的基本操作

    图像的点运算 线性点运算定义一像素线性点运算函数,如下所示:对以上函数,取不同参数,会取得不同的效果:若 ,经过运...

网友评论

      本文标题:图像的点运算2

      本文链接:https://www.haomeiwen.com/subject/uhwppftx.html