图像的点运算

所谓点运算,是指像素值(像素点的灰度值)通过运算之后,可以改善图像的显示效果。这是一种像素的逐点运算。

点运算又称为“对比度增强”、“对比度拉伸”,“灰度变换”(体现了点运算在哪些方面改变图片的显示效果)。

 

一.线性点运算

1.1 说明

1.2 示例

以lenna图像为例,点运算代码如下:

close all;
clear all;
I = imread('lenna.jpg');
I1 = 1.5 * I;                                            %增强对比度
I2 = 0.8 * I;                                            %减弱对比度
I3 = -1 * int8(I) + int8(255);                           %黑白反转
subplot(2, 2, 1), imshow(I),  title('原始图像')  
subplot(2, 2, 2), imshow(I1), title('对比度增强') 
subplot(2, 2, 3), imshow(I2), title('对比度减弱')  
subplot(2, 2, 4), imshow(I3), title('黑白反转') 

处理后的图像显示如下:

 

 

二.非线性点运算

2.1 说明

非线性点运算对应于非线性映射函数,典型的映射包括平方函数,对数函数,截取(窗口函数),阈值函数,多值量化函数等。

2.2 示例

  • 阈值化处理

阈值化处理是最常用的一种非线性运算,它的功能是选择一阈值,将图像二值化,用于图像分割及边缘跟踪等处理。

代码如下:

close all;
clear all;
I = imread('lenna.jpg');
T = mean2(I);                                                  %设定初始阈值
done = false;
while ~done
   G = I > T;
   Tnext = 0.5 * (mean(I(G)) + mean(I(~G)));
   done = abs(T - Tnext) < 0.5;
   T = Tnext;
end
G = im2bw(I, T/255);                                         %根据确定的阈值进行图像二值分割
subplot(1, 2, 1), imshow(I), title('原始图像');
subplot(1, 2, 2), imshow(G), title('二值图像');

 处理后的图像显示如下:

  • 直方图均衡化

如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度和多变的灰度色调。

代码如下:

clear all;
close all;
I = imread('lenna.jpg');
subplot(2, 2, 1), imshow(I), title('原始图像');
subplot(2, 2, 2), imhist(I);
G = histeq(I);                                                       % 灰度直方图的均衡化
subplot(2, 2, 3), imshow(G), title('直方图均衡化后图像');
subplot(2, 2, 4), imhist(G);

 处理后的图像显示如下:

 histeq的实现代码如下:

clear all;
close all;
I = imread('lenna.jpg');
I = im2double(I);
[M, N] = size(I);
[counts, x] = imhist(I);                           % counts:灰度值的个数,x:灰度值
location = find(counts ~= 0);                      % 找到所有像素个数不为0的灰度级位置
minCDF = min(counts(location));                    % 找到像素数最少的灰度级
for i = 1 : length(location)
    CDF = sum(counts(location(1 : i)));            % 计算各个灰度级像素的累计分布
    P = find(I == x(location(i)));                 % 找到灰度级所在位置
    I(P) =(CDF - minCDF) / (M * N - minCDF);       % 灰度变换公式
end

数学推导查看

posted on 2015-10-06 20:10  奈何作贼  阅读(1890)  评论(0编辑  收藏  举报

导航