数字图像处理——线性点运算

数字图像处理——线性点运算

对于一幅输入图像,如果输出图像的每个像素的灰度值都由输入像素来决定,则将这样的图像变换称为图像的点运算。
即,B(x,y)=f[A(x,y)]
其中,A(x,y)是点运算前的图像像素值,B(x,y)是点运算后的图像像素值,f是灰度变换函数,即GST函数。
线性点运算即GST函数为线性函数时的运算。
即:B(x,y)=aA(x,y)+b
其中,a和b均为实数。当a=1,b=0时,图像不变。当a=1,b!=0时,图像灰度值会随着b的增加而增加,减少而减少。
A.以下几幅图是当a=1时,b=0,50,100,150时的图像,从图像中可以看到,当b的值越大,灰度值增加,越往白色靠拢,当达到最大值255时,整幅图像会全变成白色。
数字图像处理——线性点运算_第1张图片
其matlab代码为:
clear all
I=imread(‘E:\实验图像\cameraman.jpg’)
subplot(221)
imshow(I);

J=I+50
subplot(222)
imshow(J);

K=I+100
subplot(223)
imshow(K);

M=I+150
subplot(224)
imshow(M);
B.以下几幅图是当a=1时,b=0,-50,-100,-150时的图像,从图像中可以看到,当b为负数,并且值越来越小时,灰度值减少,越往黑色靠拢,当达到最小值0时,整幅图像会全变成黑色。
数字图像处理——线性点运算_第2张图片
其matlab代码为:
clear all
I=imread(‘E:\实验图像\cameraman.jpg’)
subplot(221)
imshow(I);

J=I-50
subplot(222)
imshow(J);

K=I-100
subplot(223)
imshow(K);

M=I-150
subplot(224)
imshow(M);
(2)当a>1时,图像对比度增大。
以下几幅图是当b不变,a=1,1.25,1.5,2,2.5,50时的图像,从图像中可以看到,当a的值越大,黑白对比越明显,对比度增大。但a的值不能过大,如最后一幅图片所示,当a 取值为50时,原图像中大部分像素的灰度值均超过255,故大部分位置都显示为了白色。
数字图像处理——线性点运算_第3张图片
其matlab代码为:
clear all
I=imread(‘E:\图像处理\cameraman.jpg’)
subplot(231)
imshow(I);

J=1.25*I
subplot(232)
imshow(J);

K=1.5*I
subplot(233)
imshow(K);

M=2*I
subplot(234)
imshow(M);

N=2.5*I
subplot(235)
imshow(N);

P=50*I
subplot(236)
imshow§;

(3) 当0 数字图像处理——线性点运算_第4张图片
最后一幅图是求原图的补,即B=255-A,但是在转换的时候要注意类型变换,否则不能显示正确的结果。
clear all
I=imread(‘E:\ʵÑéͼÏñ\cameraman.jpg’)
subplot(231)
imshow(I);

J=0.8*I
subplot(232)
imshow(J);

K=0.6*I
subplot(233)
imshow(K);

M=0.4*I
subplot(234)
imshow(M);

N=0.2*I
subplot(235)
imshow(N);

P=-double(I)+255
subplot(236)
imshow(uint8§)

(4) 当a<0时。
若b值不变,当a<0时,其灰度值会变为负数,而灰度值的范围是【0,255】,故会取最小值0,因此,当a取值为负时,所运算后的结果会显示为一幅全黑图片。
若值为255,即会显示为全白,如下图所示:
数字图像处理——线性点运算_第5张图片
其matlab代码如下:
clear all
I=imread(‘E:\ʵÑéͼÏñ\cameraman.jpg’)
subplot(131)
imshow(I);

J=-1*I
subplot(132)
imshow(J);

K=255
subplot(133)
imshow(K);

你可能感兴趣的:(点运算,数字图像处理)