文档章节

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

天蚕宝衣
 天蚕宝衣
发布于 2017/03/16 18:23
字数 1641
阅读 47
收藏 0

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%E6%95%B0%E5%AD%97%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E5%88%9D%E6%

共有 人打赏支持
天蚕宝衣
粉丝 19
博文 238
码字总数 178742
作品 0
天津
【工具使用系列】关于 MATLAB 图像处理工具箱,你需要知道的事

如何使用 MATLAB 图像处理工具箱 MATLAB 图像类型转换 图像文件的读写和查询 图像文件的显示 不同类型的图像显示方法 什么是 MATLAB 图像处理工具箱 图像 图像的概念 图像的分类 图像的表示 ...

AllenMoore
01/28
9
0
数字信号处理、数学形态学、MATLAB GUI实现简单找茬软件

0、简介   这个小作品是我的数字图像处理课程设计,应用基本的图像处理知识与MATLAB的基本脚本编程,实现一个简单的找茬软件。软件实现过程中使用到的找茬游戏图片来源有“梦幻找茬”、“图...

Vitcou
07/11
0
0
DIP课程大作业---图像分割

数字图像处理课程的大作业,要求如下: 图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主...

sirius_0
2015/06/07
0
0
带你认识计算机视觉(Computer Vision)

如果想要机器能够进行思考,我们需要先教会它们去看。 李飞飞——Director of Stanford AI Lab and Stanford Vision Lab 计算机视觉(Computer vision)是一门研究如何使机器“看”的科学,更...

喵妹
05/16
0
0
(三)matlab数字图像处理实验-图像灰度变换处理

前两节都是熟悉一下怎么在matlab底下对图片做一些操作,并没有什么卵用,这一节稍微有点卵用,灰度变换一般是图像处理的第一步。 数字图像处理实验1-9点击下列链接有源码和链接: matlab数字...

aninstein
01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 公司女同事约我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享水木年华的单曲《蝴蝶花(2002年大提琴版)》 《蝴蝶花(2002年大提琴版)》- 水木年华 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
11分钟前
28
7
Linux环境搭建 | VMware下共享文件夹的实现

在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了。本文介绍了两种共享文...

良许Linux
今天
5
0
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

长头发-dawn
今天
3
0
docker中安装了RabbitMQ后无法访问其Web管理页面

在官网找了"$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management"这条安装命令,在docker上安装了RabbitMQ,,结果输入http://localhost:8080并不......

钟然千落
今天
4
1
spring-cloud | 分布式session共享

写在前面的话 各位小伙伴,你们有福了,这一节不仅教大家怎么实现分布式session的问题,还用kotlin开发,喜欢kotlin的小伙伴是不是很开心! 以前在写Android的时候,就对客户端请求有一定的认...

冯文议
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部