Matlab图像处理(01)-Matlab基础
枫竹梦对于Matlab几乎是零基础,只是在上学的时候稍稍接触一点,万万没有想到现在还能用到Matlab。进入正题>>>
图像的基本概念
一幅图像可以被定义为一个二维函数f(x,y),x和y表示空间坐标,f在(x,y)处的取值(振幅)为图像在该点的亮度。对于灰度图像来讲,即为灰度。对于RGB彩色系统来讲,即为R、G、B三个分量图像的灰度的合成。
要将一幅图像转换为数字形式,就要求数字化坐标和振幅。将坐标数字化称为取样,将振幅数字化称为量化。当f和x,y分量的振幅都是有限且离散的量时,称该图像为数字图像。
一幅有着M行N列的图像,称图像的大小为MxN。在多数的图像处理书箱中图像的原点字义在(x,y)=(0,0)处。所以x的取值为从0到M-1,y的取值为从0到N-1。在Matlab中原点定义在(1,1)处。
Matlab图像处理基本函数
读取图像
读取图像使用imread()如:
imread('image_filename')
支持的图像格式有TIFF、JPEG、GIF、BMP、PNG、XWD(X Window转储)。
注意:文件名需要写明扩展名,不可省略。文件名使用单引号来界定。如果需要让Matlab不输出读取结果,则以分号结尾。
当文件中不包含路径信息时,默认从当前目录中进行文件的查找,如果使用其他目录中的文件可以使用相对目录或者绝对路径的形式。
image = imread('test.jpg');
将读取的数据保存在变量image中。
size(image)
给出图像的大小,以数组的形式给出。当前为了得到图像的行数和列数,可以这样:
[M, N] = size(image);
M即为图像的行数,N为图像的列数。
当然也可以使用whos命令进行查看:
>> whos image
Name Size Bytes Class Attributes image 1029x1248 1284192 uint8
上面的>>为Matlab的命令提示符。
显示图像
imshow(f, G)
imshow(f, [low, high])
会将所有小于或等于low的值都显示为黑色。所有大于或等于high的值显示为白色。介于二者之间的按照默认的级数显示为中等亮度值。
imshow(f, [])
会将low设置为数组f的最小值,将变量high设置为数组f的最大值。这对于输出动态范围较小或者既有正值又有负值的图像非常有用。
在Matlab中如果需要显示另一幅图片,直接使用imshow会在已打开的figure窗口中显示图像,若要在新的窗口中显示图像可以使用figure函数,如:
figure, imshow(image)
同时显示两幅图片:
imshow(image1), figure, imshow(image2)
在Matlab的较早版本中,使用pixval函数可以交互地显示像素的亮度值。在较的新的版本中使用impixelinfo函数替代了pixval。如下图左下角:
保存图像
imwrite(image, 'image1', 'tif');
imwrite(image, 'image2.tif');
在filename中不 包含路径信息,则将文件写在当前工作目录中。对于JEPG格式的图片,语法为:
imwrite(image, 'image3.jpg', 'quality', 70)
最后的数字70,表示JPEG的压缩的质量,为0~100之间,数值越大,质量越好。默认为75。
>> imfinfo bubbles5.jpg
ans =
Filename: 'bubbles5.jpg'
FileModDate: '24-Apr-2017 23:38:34'
FileSize: 7904
Format: 'jpg'
FormatVersion: ''
Width: 720
Height: 688
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
可以看到,图像文件的大小为7904字节,宽高信息,8位灰度图像等。
k = imfinfo('bubbles5.jpg');
width = k.Width;
Matlab图像处理(01)-Matlab基础的更多相关文章
- Matlab图像处理(02)-图像基础
数据类 Matlab中和IPT中支持的基本数据类型如下: 名称 描述 double 双精度浮点数,范围-10308~10308 8字节 uint8 无符号1字节整数,范围[0, 255] uint1 ...
- Matlab图像处理基础知识
Matlab图像处理基础知识 Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值. 1图像表达方式: 像素索引 图像被视为离散单元.如使用I(2,2)可以获取第二行第二列的像素值 空 ...
- MATLAB图像处理基础
MATLAB图像处理基础 2.2.1 图像文件格式及图像类型 1.MATLAB支持的几种图像文件格式: ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像 ...
- Matlab图像处理函数:regionprops
本篇文章为转载,仅为方便学术讨论所用,不用于商业用途.由于时间较久,原作者以及原始链接暂时无法找到,如有侵权以及其他任何事宜欢迎跟我联系,如有侵扰,在此提前表示歉意.----------------- ...
- Matlab图像处理入门
1. Matlab基础 1.1 数据格式 Matlab默认的数据格式为双精度浮点数的矩阵或数组,同时支持其它数据类型.Matlab将单变量看作1´1的数组.Matlab支持的数据类型如下: 索 ...
- Matlab图像处理系列1———线性变换和直方图均衡
注:本系列来自于图像处理课程实验,用Matlab实现最主要的图像处理算法 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操 ...
- [转载]matlab图像处理为什么要归一化和如何归一化
matlab图像处理为什么要归一化和如何归一化,一.为什么归一化1. 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响.也就是转换成唯一的标准形式以抵抗仿射变 ...
- Matlab图像处理相关
相关函数: 读取:imread() %参数为文件名(路径)或url,格式等 写入:imwrite() %参数为写入数据矩阵,写入文件名(路径),格式等 显示:imshow() %显示由输入决定,属性自 ...
- Atitit MATLAB 图像处理 经典书籍attilax总结
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...
随机推荐
- 在程序中使用NV 3D Vision 【转】
http://www.cnblogs.com/gongminmin/archive/2010/11/21/1883392.html 多年前NVIDIA就发布了3D Vision技术,能提供多种立体渲染 ...
- 【Salvation】——项目进展&已取得的成果
写在前面:这个项目为原创团体项目,其中美术设计与部分关卡功能为其他成员完成,我负责的部分以角色动画和登录注册为主. 一.游戏美术设计 游戏背景,道具,动物,人物帧动画制作全部完成. 1.人物 2.游戏 ...
- 使用Python+Selenium过程中中常见的问题汇总
1.提示:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 542: ordinal not in range( ...
- struts2学习笔记之表单标签的详解:s:checkbox/radio/select/optiontransferselect/doubleselect/combobox
struts2中的表单标签都是以s标签的方式定义的,同时,struts2为所有标签都提供了一个模板,C:\Users\180172\Desktop\struts2-core-2.2.1.1.jar\t ...
- 身份证识别接口编写的JAVA调用示例
此java文章是基本聚合数据证件识别接口来演示,基本HTTP POST请求上传图片并接收JSON数据来处理. 使用前你需要通过 https://www.juhe.cn/docs/api/id/153 ...
- java查看工具jinfo-windows
Generates configuration information. This command is experimental and unsupported. Synopsis jinfo [ ...
- 开发SharePoint 自定义WebService 的小工具
是一个开源的项目,地址:http://www.codeproject.com/Articles/10728/WSS-Web-Service-DISCO-and-WSDL-Generator-Helpe ...
- java使用Runtime.exec()运行windwos dos或linux shell命令
使用Runtime.exec()运行windwos dos或linux shell命令,按实际情况具体测试 实例代码: package com.bookoo.test.command; imp ...
- CentOS开启FTP及配置用户
vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- Pentaho Work with Big Data(五)—— 格式化原始web日志
本演示样例说明怎样使用Pentaho MapReduce把原始web日志解析成格式化的记录. 一.向HDFS导入演示样例数据文件 将weblogs_rebuild.txt文件放到HDFS的/user/ ...