MATLAB数字图像处理(一)基础操作和傅立叶变换

数字图像处理是一门集计算机科学、光学、数学、物理学等多学科的综合科学。随着计算机科学的发展,数字图像处理技术取得了巨大的进展,呈现出强大的生命力,已经在多种领域取得了大量的应用,推动了社会的发展。其中,遥感领域中,对于影像数据的处理均基于数字图像处理的技术。而遥感影像数据作为地理信息科学的重要数据源,如何从中获取有用的信息,是地理信息数据处理中重要的内容。

MATLAB作为数学领域应用最广泛的一种软件,集成了对于图片处理的函数和功能,成为了处理数字图像问题的佼佼者。其出众的计算能力和简便的绘图能力可以有效进行数字图像的变换和操作。本文探究了MATLAB(R2014a)软件下数字图像处理部分简单内容方法的操作实现,包括图像变换、图像增强等。

由于时间所迫和水平不足,对于本文中的问题请指出。

在这里首先将介绍基本的操作。

1  数字图像处理基础

1.1            MATLAB图像处理基本操作

本文中对于大多数的操作,是对数字图像处理领域中最为著名的“lena”图片进行操作的。原图如下(Figure 1):

Figure 1

首先,在MATLAB中显示这幅图片:

I=imread(‘lena.jpg‘);
imfinfo(‘lena.jpg‘)
imshow(I);

其中,imread()可以读取图片,imfinfo()可以获取图片的信息(Figure 2),imshow()可以显示图片。

Figure 2

从Figure 2中可以看出,该图片格式为png,长宽均为512px,颜色类型为真彩色。

处理后的图片还需要进行保存:

imwrite(I,‘lenaSave.jpg‘);

1.2            图像数字化

使用imread()读取图像后,可以看到,读入的图片I是以一个512*512*3的矩阵进行保存的,即分别是RGB颜色的数字图片。为了方便起见,在本文中,笔者将lena图进行了转换,转换为灰度图,即保存为一个512*512*1的矩阵。

为了完成这样一个步骤,MATLAB中提供了相应的函数:

I1=rgb2gray(I);
imshow(I1);

I1以512*512*1的矩阵形式进行存储。效果如下图(Figure 3):

Figure 3

1.3            直方图

为了显示图像灰度的分布情况,还需要绘制灰度直方图。可以使用如下代码:

figure,imhist(I1);

效果如下(Figure 4):

Figure 4

1.4            图像噪声的添加

为了完成多种图像处理的操作和试验,还可以对图片添加噪声。所用函数为imnoise (I, type),该函数中的type可以为5种噪声参数,分别为:‘gaussian‘(高斯白噪声),‘localvar‘(与图象灰度值有关的零均值高斯白噪声),‘poisson‘(泊松噪声),‘salt & pepper‘(椒盐噪声)和‘speckle‘(斑点噪声)。

以下为高斯噪声(Figure 5)和椒盐噪声(Figure 6)的代码和效果:

I2=imnoise(I1,‘gaussian‘);
figure,imshow(I2);

Figure 5

I3=imnoise(I1,‘salt & pepper‘);
figure,imshow(I3);

Figure 6

2         图像变换

2.1            傅立叶变换

傅立叶变换可以将图像从空间域转换到频率域,然后再进行相应的处理。MATLAB中有傅立叶变换的函数。

原图:

Figure 7

傅立叶变换:

F=fft2(I1);
S=abs(F);
figure,imshow(S,[]);

效果:

Figure 8

看上去是一片黑,事实上在全图的左上角可以看出有一个白点(即左上角缺失了)。

平移:

Fc=fftshift(F);
figure,imshow(abs(Fc),[]);

效果:

Figure 9

将频率平移到中间。

频谱图:

figure,imshow(uint8(abs(Fc/256)));

效果:

Figure 10

之所以在本例中没有使用lena的图片,是因为该图傅立叶频谱图并无特点。

傅立叶逆变换:

f=real(ifft2(F)/255);

figure,imshow(f);

效果:

Figure 11

经过逆变换后,仍然为原图。

具体代码请参考:https://github.com/kkyyhh96/DigitalImageProcessing/tree/master/code中kyh_One.m和kyh_Two1.m的内容。

时间: 2024-10-09 20:44:42

MATLAB数字图像处理(一)基础操作和傅立叶变换的相关文章

MATLAB数字图像处理学习笔记

我们都知道一幅图片就相当于一个二维数组,可以用一个矩阵来表示,而MATLAB可以说就是为矩阵运算而生的,所以学习图像处理,学习MATLAB势在必行! 一. MATLAB基础知识 1. 读取图像 1 %imread ('filename') 2 f = imread ('lena,jpeg')%图片必须和工程在同一个目录下 3 f = imread ('E:\MATLAB\lena,jpeg')%加上路径进行读取图像操作 4 f = imread ('.\MATLAB\lena,jpeg')%读取

数字图像处理--数字图像基础

图像获取和量化 通过对人眼视觉的研究可以知道人眼是如何获取图像.在人眼的玻璃体中晶状体的后部分布了600-700万的锥状体和7500-15000万杆状体,锥状体主要是来感应彩色也就是亮视觉,每个锥状体都和神经末梢相连接因此这部分感应彩色的视网膜能感应彩色且能感应细节,杆状体是暗视觉末梢,多个(2-4)杆状体和一个神经末梢相连,且这一部分只能感应灰度也就是月光下的物体的颜色细节不如锥状体细胞:因此人们发明了图像采集的原件,最早的是黑白的就是0和1,到后来就是灰度的,就是连续有变化梯度的所以就有关于

使用 matlab 数字图像处理(一)—— 归一化直方图

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net I = imread('pout.tif'); % matlab 自带图像 [cnts, x] = imhist(I, 32); [m, n] = size(I); prob = cnts / m / n; % sum(prob) == 1 stem(x, prob) 1 2 3 4 5 6 图像的灰度直方图关于图像提供了丰富的信息

matlab数字图像处理-冈萨雷斯-读取,显示,保存图像

图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比 原文地址:https://www.cnblogs.com/fanglijiao/p/11460775.html

C++数字图像处理(1)-伽马变换

https://blog.csdn.net/huqiang_823/article/details/80767019 1.算法原理    伽马变换(幂律变换)是常用的灰度变换,是一种简单的图像增强算法.数学公式如下:(1)    式(1)中,r为输入的灰度值,取值范围为[0, 1].C称为灰度缩放系数,用于整体拉伸图像灰度,通常取值为1.gamma取值灰度输入输出曲线图如下:图(1) gamma曲线图    从图(1)可知:当gamma>1.0时,伽马变换将拉低图像灰度值,图像视觉上变暗:当ga

数字图像处理学习笔记之一 DIP绪论与MATLAB基础

写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同时学习过程中会参考网络学习资源.对于数字图像处理的学习不可能仅仅依靠作者所写的这一系列笔记,而是需要花时间和精力学习,本文只可作参考和交流之用.由于涉及此学科不久,在学习过程中难免存在错误,请读者不吝赐教. 数字图像处理绪论 数字图像处理(DIP)的研究目标和处理对象: DIP的研究目标是获取信息,处理对象是

《数字图像处理原理与实践(MATLAB版)》一书之代码Part8

本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part8,辑录该书第375至第415页之代码,供有需要读者下载研究使用.至此全书代码发布已经接近尾声,希望这些源码能够对有需要的读者有所帮助.代码执行结果请参见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MATLAB版)>一书代码发布的说明 http://blog.csdn.net/baimafujinji/article/details/40987807 P385-1 function y

图像处理之基础---卷积傅立叶变换中的复数

整个看FFT过程中复数一直很折磨我. 原本的实数的东西通过复数表达很像旋转矩阵用quaternion来表达,尽管旋转vector还是要用matrix来做,但是通过用quaternion表达的旋转意义可以做插值等很多快速的操作,而且内存消耗也小,在做完这些操作之后再转成matrix用就好了. 复数表达也是类似. a+bi = M*(cos(theta)+sin(theta)*i)----极坐标 cos(x) + sin(x)*i = exp(x*i)----欧拉公式 这个用欧拉公式转出来的exp(

[数字图像处理]常见噪声的分类与Matlab实现

1.研究噪声特性的必要性 本文的内容主要介绍了常见噪声的分类与其特性.将噪声建模,然后用模型去实现各式各样的噪声. 实际生活中的各种照片的老化,都可以归结为以下老化模型. 这个模型很简单,也可以直接用以下公式来表达. 在频域内,用以下公式区表示. 根据以上式子,可以看出,老旧照片的复原,主要分为两个任务,一个是去噪:另一个是去卷积,或者称为逆滤波,也就是将老化滤波器做反处理. 本文首先由噪声类型与其建模.随后的博文,会介绍几种基础的去噪方法和基础的逆滤波方法. 2.噪声的实现 2.1    评价