数字图像处理3之图像增强

图像增强是改善图像质量最常用的技术;其目的是为了改善图像的视觉效果,使图像更加清晰。

图像增强,按照作用域,可以分为时域处理和频域处理。时域处理直接对图像进行处理;而频域处理是在图像的某个变换域内,对图像的变换系数进行运算,然后通过逆变换获得图像增强的效果。

1.时域图像增强

时域图像增强技术主要有 灰度变换方法、直方图方法、滤波(线性和非线性)方法等。

1.1. 灰度变换

不改变原图像中像素的位置,只改变像素点的灰度值。灰度变换步骤:
首先,获取图像的直方图。得到灰度值集中的区间[min, max];
其次,将[min, max]之间的灰度值均匀分布在[0, 255]之间。
小于min的灰度值设为0,大于max的灰度值设为255;[min, max]之间的灰度值为x,[0, 255]之间的灰度值为y。满足如下:
x − m i n m a x − x = y − 0 255 − y \frac {x-min} {max-x} = \frac {y-0} {255-y} maxxxmin=255yy0

clear all; close all;
I=imread('pout.tif');
I=double(I);
J=(I-80)*255/70;
row=size(I,1);
column=size(I,2);
for i=1:row
    for j=1:column
        if J(i, j)<0
            J(i, j)=0;
        end
        if J(i, j)>255;
            J(i, j)=255;
        end
    end
end
figure;
subplot(121);
imshow(uint8(I));
subplot(122);
imshow(uint8(J));

在这里插入图片描述

1.2. 线性时域滤波

1.2.1 简单平滑

通过邻域简单平均对图像进行平滑处理的方法。此方法可以在一定程度上消除原始图像中的噪声,但是以降低原始图像的对比度、清晰度为代价。
具体算法:对图像中的一定邻域内的像素灰度求平均值,将平均的结果作为中心像素的灰度保存在结果图中。
比如 3 × 3 3\times3 3×3的简单平滑模板。
[ 1 1 1 1 1 1 1 1 1 ] \begin{bmatrix} 1&1&1\\ 1&1&1 \\1&1&1\\ \end{bmatrix} 111111111

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('images/lena.jpg')
# 1.均值滤波
blur = cv2.blur(img, (3, 3))
plt.subplot(1,2,1)
plt.imshow(img)
plt.subplot(1,2,2)
plt.imshow(blur)
plt.show()

1.2.2 高斯平滑

也是利用邻域平均的思想对图像进行平滑的一种方法。与简单平滑不同的是,在高斯平滑中,对图像邻域进行平均时,不同位置的像素被赋予了不同的权值
比如 3 × 3 3\times3 3×3的高斯平滑模板。
[ 1 2 1 2 4 2 1 2 1 ] \begin{bmatrix} 1&2&1\\ 2&4&2 \\1&2&1\\ \end{bmatrix} 121242121

  • 效果
    图像总体特征进行提取和增强,具有很好的效果。
  • 权值的确定
    高斯分布函数确定。就是正态分布。

1.3. 非线性时域滤波

非线性时域滤波包括中值滤波、统计排序滤波和自适应滤波等。

1.3.1 中值滤波

中值滤波是一种非线性的图像处理方法。通过对邻域内像素按灰度排序结果决定中心像素的灰度;即用像素邻域内的中间值代替该像素。
方法: 中值滤波即取某一窗口中各点值排序,并取其中位数之值为该点的值。一般窗口选:3 X 3, 5 X 5。窗口大小、形状可根据研究需要各式各样。
在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 13500000 查看本文章

1.3.2 统计排序滤波

对采样窗口内的奇数个像素的灰度值进行排序,取出序列中位于中间位置的灰度作为中心像素的灰度。

如下几种常用的采样窗口:

对应上面采样窗口模板:
1 1 1 1 1 1 1 1 1 \begin{matrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{matrix} 111111111
0 1 0 1 1 1 0 1 0 \begin{matrix} 0 & 1 & 0 \\ 1 & 1 & 1 \\ 0 & 1 & 0 \end{matrix} 010111010

2. 频域图像增强

2.1 图像的拉普拉斯锐化

利用拉普拉斯算子对图像进行边缘增强的一种方法。拉普拉斯算子是以图像邻域内像素灰度差分计算为基础,通过二阶微分推导出的一种图像邻域增强方法。

拉普拉斯锐化的模板如下:
0 − 1 0 − 1 4 − 1 0 − 1 0 \begin{matrix} 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end{matrix} 010141010
− 1 − 1 − 1 − 1 8 − 1 − 1 − 1 − 1 \begin{matrix} -1 & -1 & -1 \\ -1 & 8 & -1 \\ -1 & -1 & -1 \end{matrix} 111181111

猜你喜欢

转载自blog.csdn.net/duanyuwangyuyan/article/details/120693310