Matlab数字图像处理基础【1】

来源:互联网 发布:手机怎么创建软件 编辑:程序博客网 时间:2024/04/30 22:39
最近搜集了一些数字图像处理的基础方法的Matlab代码,给大家整理一下,给Matlab数字图像处理的初学者一点参考。
如发现侵权,请联系博主删除,谢谢。

第一章 Matlab基础
本章目录:
1.1 Matlab简介
1.2 简单图像操作
    1.2.1 读入图像
    1.2.2 显示图像
    1.2.3 查看图像像素值
1.3 图像的仿射变换
1.4 imresize函数
1.5 for循环的使用

1.1 Matlab简介
【1】MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言交互式环境
【2】MATLAB将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,摆脱了传统非交互式程序设计语言(如CFortran)的编辑模式。
【3】MATLAB主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
【4】MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似。

1.2 简单图像操作
1.2.1 读入图像

A = imread(FILENAME,FMT)

a.读取图像到变量A,如果文件是灰度图像,A是二维矩阵,如果文件是真彩色图像(RGB),A是三维矩阵。FILENAME:图像文件名;FMT:图像文件格式。
b.文件必须在当前目录下,如果不是,需要在FILENAME中加入文件路径,或者切换Matlab工作目录。
c.更多用法简介:helpimread

示例:

%相对路径写法

A= imread(‘example.jpg’);

%绝对路径写法

A= imread('E:\example.jpg');   


1.2.2 显示图像

imshow(Img)

   --Img:要显示的图像矩阵

示例:

A=imread('example.jpg');

imshow(A)


运行结果:


1.2.3 查看图像像素值

a.(小图像)双击Workspace中的矩阵名称
b.(灰度图)a=A(x,y)  x:横坐标   y:纵坐标
c.(真彩图)a=A(x,y,ch)  ch:RGB通道


1.3 图像的仿射变换

仿射变换(Affine Transformation或 Affine Map

a.是一种二维坐标到二维坐标之间的线性变换
b.平直性:直线经过变换之后依然是直线
c.平行性:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变


仿射变换示例:顺时针旋转90度:

clc;

clear;


A=imread('example.jpg');

tform=maketform('affine',[0 1 0;-1 0 0;0 0 1]);

A1=imtransform(A,tform);

figure(1)

imshow(A)

figure(2)

imshow(A1)


运行结果:


1.4 imresize函数

imresize函数用来调整图片的大小,可以对灰度图和RGB图使用。使用示例:

clc;

clear;

 

A = imread('flower_gray.jpg');

B = imread('test_coder.jpg');

 

A1 = imresize(A, [100 100]);

B1 = imresize(B, [100 100]);

 

subplot(2,2,1);

imshow(A);

title('灰度图');

 

subplot(2,2,2);

imshow(A1);

title('灰度图RESIZE');

 

subplot(2,2,3);

imshow(B);

title('RGB');

 

subplot(2,2,4);

imshow(B1);

title('RGBRESIZE');


1.5 for循环的使用

示例:读取矩阵的第一列并转存到另一个矩阵

clc;

clear;

 

A = imread('flower_gray.jpg');

[m,n] = size(A);

 

for i = 1:m

    a= A(i,1)

   A1(i,1) = a;

end


0 0