图像处理常用命令matlab

1. 读入并显示一幅图像
clear              %清除所有的工作平台变量
close all            %关闭已打开的图形窗口
I=imread ('pout.tif');  %读取图像pout.tif(该图像是图像处理工具箱自带的图像)
%存储在一个名为I数组
imshow(I)          %显示图像I
2. 检查内存中的图像
  whos    moea%查看图像数据I是如何存储在内存中的。
3. 实现直方图均衡化
  figure          %生成一个新的图形窗口,避免后面的图像覆盖前面图像的显示
imhist(I)        %创建描述图像I灰度分布的直方图
I2=histeq(I);      %将图像的灰度值扩展到整个灰度范围,从而提高图像数组I的对比度。
figure,imshow(I2)  %显示修改过的图像I2
figure,imhist(I2)    %显示拓展后的灰度值的分布情况
4. 保存图像
  imwrite(I2,'pout.png');  %将图像I2PNG图像文件格式保存到磁盘
5. 检查新生成文件的内容
  imfinfo('pout2.png')    %观察保存的图像文件信息
图像处理的高级应用
主要对一幅灰度图像rice.tif进行一些较为高级的操作为例说明整个过程。
1. 读取和显示图像
  clear              %清除所有的工作平台变量
close all            %关闭已打开的图形窗口
I=imread('rice.png');  %读取图像rice.png (该图像是图像处理工具箱自带的图像)
imshow(I)          %显示图像
2. 估计图像背景
  background=imopen(I,strel('disk',15));  %对图像I进行形态学开操作,删除那些不完全包括
%在半径为15的圆盘中的对象,实现对背景亮度的估计
  figure,imshow(background)
  figure,surf(double(background(1:8:end,1:8:end))),zlim([0 255]);  %以表面形式显示背景
 
3. 从原始图像中减去背景图像
  I2=imsubtract(I,background);  酷派n68%将背景图像background从原始图像I中减去
figure,imshow(I2)
4. 调节图像对比度
  I3=imadjust(I2,stretchlim(I2),[0 1]);  %调节图像的对比度
figure,imshow(I3);
5. 使用阈值操作将图像转换为二进制图像
  level=graythresh(I3);
bw=im2bw(I3,level);
figure,imshow(bw)
6. 检查图像中的对象个数
  [labeled,numObjects]=bwlabel(bw,4);  %确定图像中的米粒个数
numObjects
  101
7. 检查标记矩阵
  grain=imcrop(labeled)  %选择并显示已标记的对象和部分背景内的像素
  RGB_label=label2rgb(labeled,@spring,'C','shuffle'); 
%标记矩阵显示为一副伪彩的索引图像,在伪彩的彩图像中,
%标记矩阵中的每一个对象都将被映射为相关调板中的不同颜
imshow(RGB_label);
8.计算图像中对象的统计属性
  graindata=regionprops(labeled,'basic') 
%测量图像或者区域的属性,并返回一个结构数组。当用于一个标记图像时,%它还为每一个标记分量创建一个结构元素。
  graindata(51).Area  %显示第51个元素的属性
  graindata(51).BoundingBox,graindata(51).Centroid  %寻最近的边缘和中心
  allgrains=[graindata.Area];  %创建一个新的向量allgrains,其包含每个米粒的范围
  allgrains(51)  %查看第51个元素的范围
  max(allgrains)  %获取最大的米粒大小
  biggrain=find(allgrains==404)  %返回最大米粒的标记号
  mean(allgrains)  %获取米粒的平均大小
  hist(allgrains,20)  %绘制包含20个柱的直方图
图像格式:是存储图像采用的文件格式。不同的操作系统、不同的图像处理软件,所支持
的图像格式都有可能不同。
在实际应用中经常会遇到的图像格式有:BMPGIFTIFFPCXJPEGPSDPCD
WMF等。
*(1) BMP(Bitmap)文件
*(2)GIF文件
*(3)TIF文件
*(4)JPEG文件
图像类型:是指数组数值与像素颜之间定义的关系,它与图像格式概念有所不同。
MATLAB图像处理工具箱中,有五种类型的图像
(1) 二进制图像
在一幅二进制图像中,每一个像素取两个离散数值(01)中的一个,从本质上说,这两个数值分别代表状态“开”(on)“关”(off)
二进制图像仅使用unit8双精度类型的数组来存储
在图像处理工具箱中,任何返回一幅二进制图像的数组均使用unit8逻辑数组存储该图像,并且使用一个逻辑标志来指示unit8逻辑数组的数据范围
若逻辑状态为“开”(on,数组范围为[0,1]若为“关”(off,则数组范围为[0,255]
严格自律
(2) 索引图像
索引图像:是一种把像素值直接作为RGB调板下标的图像。
MATLAB中,索引图像包含有一个数据矩阵X一个颜映射(调板)矩阵map数据矩阵:可以是unit8unit16、双精度类型的;
颜映射矩阵map是一个m×3的数据矩阵,其中每个元素的值均为[0,1]之间的双精度浮点型数据,map矩阵的每一行分别表示红、绿和蓝的颜值
索引图像可把像素值直接映射为调板数值每一个像素的颜通过使用X的数值作为map的下标来获得,如1指向矩阵map中的第一行2指向第二行,依此类推。
颜映射通常与索引图像存储在一起,当装载图像时,MATLAB自动将颜映射表与图像同时装载。
图像矩阵颜映射表之间的关系依赖于图像数据矩阵的类型
如果图像数据矩阵是双精度类型,则数据1指向矩阵map中的数据值2将指向map中的第二行,依此类推;
如果图像矩阵是unit8unit16类型时,将产生一个偏移,即数值0表示矩阵map中的数据值1将指向map中的第二行我们来自未来2电影,依此类推。
(3) 灰度图像
灰度图像通常由一个unit8unit16、双精度类型的数组来描述,其实质是一个数据矩阵I,该矩阵中的数据均代表了在一定范围内的灰度级每一个元素对应于图像的一个像素点,通常0代表黑125565 535(针对不同存储类型)代表白
(4) 多帧图像
多帧图像是一种包含多幅图像或帧的图像文件,又称为多页图像图像序列
MATLAB中,它是一个四维数组,其中第四维用来指定帧的序号
在一个多帧图像数组中,每一幅图像必须有相同的大小和颜分量,每一幅图像还要使用相同的调板。另外,图像处理工具箱中的许多函数(如:孕妇餐厅imshow)只能对多幅图像矩阵的前两维或三维进行操作,也可以对四维数组使用这些函数,但是必须单独处理每一帧。如果将一个数组传递给一个函数,并且数组的维数超过该函数设计的超作维数,那么得到的结果是不可预知的。
(5) RGB图像
RGB图像又称为真彩图像,它是利用RGB三个分量表示一个像素的颜RGB分别代表红、绿、篮3种不同的颜,通过三基可以合成出任意颜。所以对一个尺寸为n×m的彩图像来说,在MATLAB中则存储为一个n×m×3多维数据数组,其中数组中的元素定义了图像中的每一个像素的红、绿、篮颜值。图形文件格式周朴园RGB图像存储为
24的图像,红、绿、篮分量分别占用8
MATLABRGB数组可以是双精度的浮点型、8位或16位无符号的整数类型。在一个双精度类型RGB数组中,每一个颜分量都是一个[0,1]范围内的数值。如:颜分量为(0,0,0)的像素将显示为;颜分量为(1,1,1)的像素将显示为。每一个像素的三个颜分量都存储在数组的第三维中。如:像素(105)的红、绿、篮颜值分别保存在元素RGB(10,5,1)RGB(10,5,2)RGB(10,5,3)中。
例:创建一个简单的RGB图像,该图像包含某一范围内不中断的红、绿、篮颜分量,另外,
针对每一个颜分量各创建一幅图像来加以对比:
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
subplot(2,2,1);imshow(R);
subplot(2,2,2);imshow(G);
subplot(2,2,3);imshow(B);
subplot(2,2,4);imshow(RGB);
(1)图像颜浓淡处理(图像抖动)
X=dither(RGB,map)  %通过抖动算法将真彩图像RGB按指定的颜(调板)map转换
索引图像X
X=dither(RGB,map,Qm,Qe) 
%利用给定的参数QmQe真彩图像RGB中产生索引图像X
%Qm表示沿每个颜轴反转颜图的量化(即对于补各颜轴)的位数,
%Qe表示颜空间计算误差的量化误差。
              %如果Qe<Qm,则不进行抖动操作。Qm的默认值是5Qe的默认值是8
BW=dither(I)  %通过抖动算法将矩阵I中的灰度图像转换为二进制图像
注意:
输入图像可以是双精度类型或8位无符号类型,其他参数必须是双精度类型。
如果输出的图像是二值图像或颜种类少于256的索引图像时,为uint8类型,否则为doule型。

本文发布于:2024-09-24 04:24:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/155475.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   颜色   数组
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议