当前位置:   article > 正文

【数字图像处理】期末理论考试复习——图像空间域增强_单一灰度值

单一灰度值

直方图&点运算

图像的质量

  • 层次:
    灰度级:表示像素明暗程度的整数量。
    层次:表示图像实际拥有的灰度级的数量。

  • 对比度:一幅图像中灰度反差的大小
    对比度=最大亮度/最小亮度

  • 清晰度:亮度、对比度、尺寸大小、细微层次、颜色饱和度

图像增强概述

  • 清晰图像:对象物体的亮度和色彩的细微差别被清楚地显示出来
  • 图像增强的方法:
    在这里插入图片描述

图像直方图

MATLAB:

imhist(l)
  • 1

线性灰度变化

  • 灰度n值化:
    MATLAB
l = imread('pet.bmp');
imshow(Il);
l1 = im2double(l) %图像灰度值得双精度化
l2 = 2 * l1 %把灰度值扩大2倍
figure,imshow(l2);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 线性灰度变换:
    在这里插入图片描述
l = imread('pet.bmp');
l1 = im2double(l);
figure,imhist(l1);
l2 = imadjust(l1, [0 0.3], [0 1]); %把图像灰度范围从[0,0.3]拉伸到[0, 1]
figure,imshow(l2);
figure,imhist(l2);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 分段线性灰度变换:
    在这里插入图片描述

非线性灰度变换

  • 对数变换:主要应用于压缩动态范围
    在这里插入图片描述
l = imread('spectrum.bmp');
imshow(l);
l1 = double(l); %双精度化
l2 = log(l1 + 1); %对数变换
l3 = mat2gray(l2); %把图像的灰度范围变换为[0 1]范围
figure,imshow(l3);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 指数变换:主要应用为扩展动态范围
    在这里插入图片描述
  • 位面表示:
    在这里插入图片描述

直方图调整法

  • 直方图均衡化:在一定区域内进行图像增强
    在这里插入图片描述
l = imread('pout.tif');
imhist(l, 64);
J = histeq(l); %直方图均衡化处理
[J, T] = histeq(l); %绘制变换函数
figure
plot((0:255) / 255,T);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 直方图匹配:按照预定目标进行灰度增强
    在这里插入图片描述
A = imread('concordaerial.png');
Ref = imread('concordorthophoto.png');
size(A);
size(Ref);
B = imhistmatch(A,Ref); 
imshow(B),title('Histogram Matched RGB Image')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

空间滤波

图像噪声与图像平滑

  • 噪声:图像在获取或传输过程中受到随机信号的干扰,在图像上出现的一些随机、离散、孤立的像素点。
  • 分类:
    在这里插入图片描述
  • 图像加入噪声:
    在这里插入图片描述
clear; close all
l = imread(',,'); imshow(l);
l1 = imnoise(l, 'salt & pepper', 0.02); %加入密度d=0.02椒盐噪声
figure,imshow(l1);
  • 1
  • 2
  • 3
  • 4

均值滤波

  • 公式
    在这里插入图片描述
l = imread('eigth.tif'); imshow(l);
l1 = imnoise(l, 'gaussian', 0, 0.02); %叠加高斯噪声
figure, imshow(l1);
l2 = filter2(fspecial('average',3),l1)/255; %3*3领域均值滤波
figure,imshow(l2);
  • 1
  • 2
  • 3
  • 4
  • 5

高斯滤波

l = imread('eight.tif');
subplot(221),imshow(l);
l1 = imnoise(l, 'guassian', 0, 0.02); %叠加高斯噪声
subplot(222),imshow(l1);
l2 = imfilter(l1, fspecial('gaussian', 3)); %3*3高斯滤波
  • 1
  • 2
  • 3
  • 4
  • 5

中值滤波

  • 中值滤波用含有奇数点的滑动窗口,将领域中的像素按灰度级排序取中间值为输出像素。
  • 要素:取决于领域的空间范围和中值计算中涉及的像素。
  • 优点:在抑制随机噪声的同时不让边缘模糊。但不适用于细节多的图。
#利用中值滤波,对椒盐噪声干扰的图像进行平滑处理。
l = imread('eight.tif');
l1 = imnoise(l, 'salt & pepper', 0.04); %叠加椒盐噪声
figure,imshow(l1);
l2 = double(l1);
[M,N] = size(l2);
l3 = noise(size(l2));
for i =2:M -1
    for j=2:N - 1
        l3(i,j) = median([l2(i-1,j-1) l2(i-1,j) l2(i-1,j+1)...
                          l2(i,j-1) l2(i,j) l2(i,j+1)...
                          l2(i+1,j-1) l2(i+1,j) l2(i+1,j+1)]);
     end
end
for i=2:M-1
    l3(i,1) = l3(i,2);
    l3(i,N) = l3(i,N-1);
end
l3(1,:) = l3(2,:);
l3(M,:) = l3(M-1,:);
figure,imshow(uint8(l3));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

自适应滤波

  • wiener滤波:
    在这里插入图片描述
l = imread('eight.tif'); imshow(l);
l1 = imnoise(l, 'gaussian', 0, 0.2)
figure,imshow(l1);
l2 = wiener(l1,[3,3]);
figure,imshow(l2);
  • 1
  • 2
  • 3
  • 4
  • 5

小结

在这里插入图片描述

锐化滤波

图像边缘与锐化

  • 一阶微分:
    在这里插入图片描述
  • 二阶微分:
    在这里插入图片描述

一阶微分法锐化

  • 梯度法:
    在这里插入图片描述
  • 罗伯茨梯度法:
    在这里插入图片描述
  • 索贝尔和普瑞维特算法:
    在这里插入图片描述

二阶微分法锐化

有些情况下,如灰度变化均匀的图像,只利用一阶导数可能找不到边界,此时可用二阶导数。
有拉普拉斯算法和拉普拉斯高斯算法。

图像微分锐化小结

利用梯度算法、索贝尔算法、普瑞维特算法,拉普拉斯算法,LoG算法对原始图像进行锐化处理。

l = imread('saturn.png'); %读入一幅PNG图像
subplot(2,3,1),imshow(l),title('原始图像');
l = im2double(l); %双精度化处理
[IX,IY] = gradient(l); %返回矩阵L梯度值的X和Y分量
l1 = sqrt(IX.*IX +IY.*IY);%得到梯度算法结果图像
subplot(2,3,2),imshow(l1,[]);title('gradient value');
h2 = fspecial('sobel'); %索贝尔算法
l2 = imfilter(l,h2); %采用索贝尔滤波
h3 = fspecial('prewitt'); %普瑞维特算法
l3 = imfilter(l,h3); %采用普瑞维特滤波
h4 = fspecial('laplacian') %拉普拉斯算法
l4 = imfilter(l,h4)
h5 = fspecial('log'); %LoG算法
l5 = imfilter(l,h5);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

锐化图像的表示

  • 第1种锐化表示:微分图像直接输出(梯度值),轮廓比较突出;灰度平缓变化部分,梯度小,很黑。
    在这里插入图片描述
  • 第2种锐化表示:背景保留,轮廓取梯度值T:阈值,非负。适当选择T,既突出轮廓,又不破坏背景。
    在这里插入图片描述
  • 第3中锐化表示:背景保留,轮廓取单一灰度值。
    在这里插入图片描述
  • 第4种锐化表示:背景取单一灰度值、轮廓取梯度值。
    在这里插入图片描述
  • 第5种锐化表示:轮廓、背景分别取单一灰度值,即二值化,只对轮廓感兴趣。
    在这里插入图片描述
[l,map] =imread('cameraman.tif';%读入一幅TIFF图像 subplot(2,3,1),imshow(l,map);title('原始图像'); %把一个图形窗口划分为2×3矩形显示区域,在左上角的区域显示图像l
l1=double();%双精度化处理
[IX,IY]=gradient(I1); %返回图像矩阵I梯度值的X和Y分量 
G=sqrt(IX.*IX+IY.*IY); %得到梯度算法结果图像 
J1=G;%1种锐化,微分图像直接输出
J2=l;%让J2等于l
K=find(G>=7); %找出梯度大于7的索引号 J2(K)=G(K);%梯度大于7的轮廓取梯度值,背景不变 
subplot(2,3,3),imshow(J2,map);title('第2种锐化'); %在右上角的区域显示第2种锐化结果图像 J3=l; %让J3等于l
K=find(G>=7); %找出梯度大于7的索引号
J3(K)=255;%让梯度大于7的轮廓取值255(白色),背景不变
subplot(2,3,4),imshow(J3,map);title('第3种锐化);%在左下角的区域显示第3种锐化结果图像
J4=G; %让J4等于G
K=find(G<=7); %找出梯度小于7的索引号
J4(K)=255;%让梯度小于7的背景取255,轮廓取梯度值 
subplot(2,3,5),imshow(J4,map);title('第4种锐化';%在中下区域显示第4种锐化结果图像 J5=l; %让J5等于I
K=find(G<=7); %找出梯度小于7的索引号 J5(K)=0; %让梯度小于7的背景取值0(黑色) K=find(G>7); %找出梯度大于7的索引号
J5(K)=255; %让梯度大于7的轮廓取值255(白色) subplot(2,3,6),imshow(5map);title('第5种锐化');%在右
下角的区域显示第5种锐化结果图像
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

锐化与边缘特征

反锐化掩模

  • 反锐化淹没MATLAB代码:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

小结

  • 图像锐化:
    在这里插入图片描述
  • 图像平滑:
    在这里插入图片描述
  • 图像锐化:
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/72477
推荐阅读
相关标签
  

闽ICP备14008679号