当前位置:首页 > 地信家园 > MATLAB数字图像处理之一:初识数字图像处理

MATLAB数字图像处理之一:初识数字图像处理

正文索引[ 隐藏 ]

    MATLAB数字图像处理初步

    一.实验目的

    1.掌握MATLAB的基本操作。

    2.了解数字图像处理在MATLAB中的基本处理过程。

    3.学习图像处理的简单操作方法。

    二.实验设备

    1.PC机一台;

    2.软件matlab;

    三.程序设计

    1. 图像读取:imread(‘图像路径’)

    Help:

    imread

    Read image from graphics file

    Syntax

    A = imread(filename, fmt)

    [X, map] = imread(…)

    [...] = imread(filename)

    [...] = imread(URL,…)

    [...] = imread(…,Param1,Val1,Param2,Val2…)

    2. 图像显示:imshow(‘图像路径’)

    Help:

    imshow

    Display image

    Syntax

    imshow(I)

    imshow(I,[low high])

    imshow(RGB)

    imshow(BW)

    imshow(X,map)

    imshow(filename)

    himage = imshow(…)

    imshow(…, param1, val1, param2, val2,…)

    3. 图像信息提取:whos ’’

    Help:

    who, whos

    List variables in workspace

    Graphical Interface

    As an alternative to whos, use the Workspace browser. For information on viewing the contents of MAT-files without loading them, see Using the Current Folder Browser.

    Syntax

    who

    whos

    who(variable_list)

    whos(variable_list)

    who(variable_list, qualifiers)

    whos(variable_list, qualifiers)

    s = who(variable_list, qualifiers)

    s = whos(variable_list, qualifiers)

    who variable_list qualifiers

    whos variable_list qualifiers

    4. 获取图像文件压缩颜色等其他信息:imfinfo(‘图像路径’)

    Help:

    imfinfo

    Information about graphics file

    Syntax

    info = imfinfo(filename,fmt)

    info = imfinfo(filename)

    info = imfinfo(URL,…)

    5. 压缩图像并保存成jpg: imwrite

    imwrite(f,’filename.jpg’,’quality’,q) 0<=q<=100

    6. 将tif存为bmp:imwrite(‘源图像路径’,‘保存路径’,‘bmp’)

    Help

    imwrite

    Write image to graphics file

    Syntax

    imwrite(A,filename,fmt)

    imwrite(X,map,filename,fmt)

    imwrite(…,filename)

    imwrite(…,Param1,Val1,Param2,Val2…)

    7. 灰度图像转二值图像:im2bw()

    Help

    im2bw

    Convert image to binary image, based on threshold

    Syntax

    BW = im2bw(I, level)

    BW = im2bw(X, map, level)

    BW = im2bw(RGB, level)

    8. RGB图像创建灰度图像:rgb2gray()

    Help

    rgb2gray

    Convert RGB image or colormap to grayscale

    Syntax

    I = rgb2gray(RGB)

    newmap = rgb2gray(map)

    9. 多幅图像在同一个窗口显示:subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(B)

    Help:

    subplot

    Create axes in tiled positions

    Syntax

    h = subplot(m,n,p) or subplot(mnp)

    subplot(m,n,p,’replace’)

    subplot(m,n,P)

    subplot(h)

    subplot(‘Position’,[left bottom width height])

    subplot(…, prop1, value1, prop2, value2, …)

    h = subplot(…)

    四.实验步骤

    1. 读取一幅图像,将其存入一个数组中;

    2. 显示这幅图像;

    3. 提取该图像的基本信息;

    4. 获取图像文件的压缩,颜色等等其他的详细信息;

    5. 压缩这幅图象,将其保存为一幅压缩了像素的jpg文件;

    6. 将最初读入的tif图象另存为一幅bmp图像;

    7. 将一幅灰度图像转化为二值图像,并且显示出来,观察图像的特征;

    8. 根据RGB图像创建一幅灰度图像;

    9. 多幅图像在同一个窗口内显示;

    五.实验结果

    为了方便代码书写,将matlab的工作路径设置为了所有图片所在的文件夹,也就是F:envimatlab上机实验imdemos,从而写代码时,可以省略路径。

    1. 读取一幅图像,将其存入一个数组中;

    A= imread(‘cameraman.tif’)

    2. 显示这幅图像;

    Imshow(A)

    MATLAB数字图像处理初步实验报告

    3. 提取该图像的基本信息;

    Whos A

    MATLAB数字图像处理初步实验报告

    4. 获取图像文件的压缩,颜色等等其他的详细信息;

    imfinfo cameraman.tif

    MATLAB数字图像处理初步实验报告

    5. 压缩这幅图象,将其保存为一幅压缩了像素的jpg文件;

    imwrite(A,’1cameraman.jpg’,’quality’,50)

    压缩前: 大小为60多k

    MATLAB数字图像处理初步实验报告

    压缩后:大小为6k多

    MATLAB数字图像处理初步实验报告

    6. 将最初读入的tif图象另存为一幅bmp图像;

    imwrite(A,’cameraman.bmp’,’bmp’)

    7. 将一幅灰度图像转化为二值图像,并且显示出来,观察图像的特征;

    B=im2bw(A)

    subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(B)

    MATLAB数字图像处理初步实验报告

    8. 根据RGB图像创建一幅灰度图像;

    C=imread(‘greens.jpg’)

    D=rgb2gray(C)

    subplot(1,2,1),imshow(C);subplot(1,2,2),imshow(D)

    MATLAB数字图像处理初步实验报告

    9. 多幅图像在同一个窗口内显示;

    subplot(2,2,1),imshow(A);subplot(2,2,2),imshow(B);

    subplot(2,2,3),imshow(C);subplot(2,2,4),imshow(D)

    MATLAB数字图像处理初步实验报告

    六、问题与思考:

    1. Matlab软件可以支持哪些图像文件格式?

    ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。

    ⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位RLE(Run length Encoded)的图像。文件内容包括文件头(一个BITMAP FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。

    ⑶PCX(Windows Paintbrush):可处理1位、4位、8位、16位、24位等图像数据。文件内容包括文件头、图像数据和扩展色图数据。

    ⑷TIFF(Tagged Iamge File Format):处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。

    ⑸PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

    ⑹GIF(Graphics Interchange Format):任何1位到8位的可交换的图像。

    ⑺HDF(Hierarchial Data Format):有8位、24位光栅图像数据集。

    ⑻ICO(Windows Icon resource):有1位、4位、8位非压缩图像。

    ⑼CUR(Windows Cursor resource):有1位、4位、8位非压缩图像。

    ⑽XWD(X Windows Dump):包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。

    ⑾RAS(Sun Raster image):有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。

    ⑿PBM(Portable Bitmap)。

    ⒀PGM(Portable Graymap)。

    ⒁PPM(Portable Pixmap)。

    2. 说明函数imread 的用途格式以及各种格式所得到图像的性质。

    imread的常见调用格式为:

    A = imread(filename,fmt)

    其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。

    imread的其他几种重要的调用格式为:

    [X,map] = imread(filename.fmt)

    […] = imread(filename)

    […] = imread(URL,…)

    […] = imread(…,idx) (CUR,ICO and TIFF only)

    […] = imread(…,’frames’,idx) (GIF only)

    […] = imread(…,ref) (HDF only)

    […] = imread(…,’BackgroundColor’,BG) (PNG only)

    [A,map,alpha] = imread(…) (ICO,CUR and PNG only)

    上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。’frame’,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或’all’。ref是指整数值。alpha是指透明度。

    3. 为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?

    MATLAB系统默认的算术运算是针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号8位(MATLAB为图像提供的特殊的数据类型),直接进行运算会溢出。

    友荐云推荐
  • «
  • »
  • 作者:
    除非注明,本文原创:技术宅,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.jishuzh.com/gis/matlab数字图像处理初步实验报告.html

    2 thoughts on “MATLAB数字图像处理之一:初识数字图像处理

    1. 比分直播

      来坐个板凳,学习学习哈

    2. 润初颜

      技术博呀!抢个沙发先!

    评论已关闭.