基于Matlab的数字图像处理技术

本文详细介绍了基于Matlab的数字图像处理技术,包括图像基础、基本运算、变换、增强、压缩编码和图像分割等内容。讲解了图像的四邻域和八邻域、彩色模型、图像点运算、几何运算、傅里叶变换、图像增强方法如直方图均衡化和空域滤波,以及图像压缩编码和阈值分割等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数字图像处理基础

1、图形和图像的区别

图形(矢量图):以几何数学为基础,图形由点、线、圆等图元组成,图形文件仅记录点的坐标和绘图命令。

图像(点阵图):用像素来描述的图,图像文件中记录每个像素的颜色和亮度。

2、四邻域和八邻域:

4-邻域:设像素p(x,y),它有4个水平和垂直相邻的像素:(x-1,y)(x+1,y)

(x,y-1)(x,y+1),这4个点组成p的4-邻域。

对角邻域:像素p(x,y)的4个对角临近像素:(x-1,y-1)(x+1,y-1)

(x-1,y+1)(x+1,y+1),这4个点组成p的对角邻域。

8-邻域:像素p的4-邻域和对角邻域合起来组成p的8-邻域。

3、彩色模型

(1)RGB模型

8种颜色配比(归一化):

e440789efec272f76775bb9bbbf6bd35.png


(2)HIS模型:H(色度),S(饱和度),(I)亮度。

(3)二值模型:0—黑色,1—白色。

(4)灰度模型:白—黑有256个灰度级来显示图像,0—黑色,255—白色。

(5)几种图像的颜色数:

二值图像:2种像素值

灰度图像:256种灰度级

彩色图像:256 * 256 * 256 = 2^24种

索引彩色:

4、图像处理中常用的输入设备:数码相机、数码摄像机、扫描仪;

图像处理中常用的输出设备:显示器、打印机、绘图仪。

5、图像的存储:

空间分辨率:M * N 幅度分辨率:G = 2^K

存储一幅图像所需位数(bit):b = M * N * K。

二、图像的基本运算

1、图像点运算


a097a8ce6aa8c5824606e0e8bb58e056.png


F为输入点的灰度值,G为输出点的灰度值,

  1. b = 0时,a>1,图像对比度增大;0<a<1,图像对比度减小。
  2. a = 1时,b>0,灰度值上移,亮度增加;b<0,灰度值下移,亮度降低。
  3. a = 1,b = 255,图像反相。


Matlab中图像线性变换:

Y = imlincomb(a,x,b); %Y=a*X+b

2、图像的加法运算

C(x,y) = A(x,y) + B(x,y)

图像的叠加方法:

g(x,y) = a*f(x,y)+ b*h(x,y); a+b = 1

matlab中:

A = imread(‘第一幅图’);

B = imread(‘第二幅图’);

C = 0.5*A + 0.5*B;

Imshow(c);

3、减法运算

主要检测同一场景两幅图像之间的变化

G(x,y) = T2(x,y)- T1(x,y)

Matlab中:

A = imread(‘第一幅图’);

B = imread(‘第二幅图’);

C = A - B;

Imshow(c);

4、乘法运算

用二值图像与原图像做乘法,得到需要的子图像。

Z = X .* Y; 要求X和Y的大小、数组元素相同。

Matlab中:

X = imread(‘被点乘的图像’);

Y = zeros(M,N);

Y (70:120, 120:380) = 1;

X = im2double(X);

Z = X.*Y;

Imshow(Z);

5、图像几何运算

(1)图像的镜像:

B = fliplr(A);水平镜像

B = flipud(A);垂直镜像

(2)图像的平移:

A = imread(‘tree.bmp’);

[M N] = size(A);

B = zeros(M, N, class(A));

tx = 100, ty = 50;

B(1+ty:M, 1+tx:N) = A(1:M-ty, 1:N-tx);

imshow(B);

(3)图像的旋转

B = imrotate(A, 60, ‘bilinear’, ‘crop’);截去局部

(4)图像的缩放

B = imresize(A, m);

(5)图像的转置

B = A’

三、图像的变换

1、傅里叶变换

傅里叶变换将图像从空域变换到频域;

傅里叶逆变换将图像从频域变换到空域。

2、一维傅里叶变换(会计算)


72af5801f68f6ab1d9deea59378b40cf.png

a67603baa6f170658cb5726f346da0d8.png


逆变换:


fa8d4085e5cae6d1e83ee43c47427c03.png


Matlab中一维傅里叶变换: Y = fft(X),省略系数1/N

3、二维傅里叶变换(会编程)

Y = fft2(X)

Matlab代码:

A = zeros(300,300);

A (100:200, 100:200) = 1;

B = fft2(A);

C = abs(B);

D = fftshift(C);

D1 = unint8(D);

Imshow(D1);

4、傅里叶变换的性质

(1)平移不变性:在空域图像平移时,在频域中频谱不变

(2)旋转一致性:空域中图像旋转a角度,在频域中同样也旋转a角度

5、离散余弦变换

Y = dct2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值