MATLAB图像处理分析基础(一)

一、引言

MATLAB软件得到许多数字图像处理学生、老师和科研工作者的喜爱,成为数字图像处理领域不可或缺的工具之一,其与其他软件相比有以下诸多显著优点。首先,MATLAB 拥有强大的内置函数库,涵盖了图像读取、显示、处理及分析的全方位功能,极大简化了编程工作,提高了开发效率。其次,其强大的矩阵运算能力为图像数据的批量处理提供了坚实基础,使得复杂的图像处理算法得以快速实现与优化。再者,MATLAB 提供了丰富的可视化工具,能够直观地展示图像处理前后的对比效果,便于研究人员进行算法调试和结果分析。此外,MATLAB 的易用性和灵活性使得即便是非专业编程人员也能快速上手,进行图像处理的探索和实践。但对于新学习MATLAB软件的同学,在进行数字图像处理和分析时对一些基本命令的综合运用还有一些问题,下面给出一个简单示例把图像处理分析中中常用的一些基本函数(图像读取、图像信息查看、显示、保存、直方图显示、图像工具箱、对比度、均值、最大值、最小值、标准差等)进行编程讲解。

二、程序源代码

clear all; %清除所有变量

close all; %关闭图窗

imtool close all; %关闭imtool窗口

clc;

I=imread('rice.png');%读入灰度图像

whos I; %列出工作区中的变量及大小和类型,数据类型为无符号的八位整型(uint8)

imfinfo('rice.png') %查看图像信息

m,n,ndim\]=size(I);%获取图像矩阵的行列数和维度 256行256列 维度为1 imshow(I);%在图窗中显示灰度图像 figure,imshow(I,\[\]);%imshow 使用 \[min(I(:)) max(I(:))\] 作为显示范围。imshow 将 I 中的最小值显示为黑色,将最大值显示为白色。 %续上---其它灰度值在40(黑,0)和204(白,255)进行线性差值并显示;通常会增加灰度图像对比度 figure,imhist(I);%显示灰度直方图,由直方图分析可知其有多峰(3个峰),简单阈值分割不能获得较好分割效果 I2=histeq(I); figure,imshow(I2); imwrite(I2,'e:\\riceMod.jpg') imtool(I);%打开图像工具箱,可以显示图像并进行图像的一般处理 Imax=max(I(:));%求图像的灰度最大值,最大灰度值为204,也可以通过max(max(I))求得其图像最大灰度值 Imin=min(I(:));%求图像的灰度最小值,最小灰度值为40,也可以通过min(min(I))求得其图像最大灰度值 Icontrast=(double(Imax)-double(Imin))/(double(Imax)+double(Imin));%计算Michelson对比度 注意数据类型转换 Imean2=mean2(I);%求图像的灰度平均值 Istd2=std2(I);%通过std2函数求图像灰度的标准差 %%方差--统计学采用平均离均差平方和来描述变量的变异程度,有关公式详见百度百科 %%标准差--标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。 t=double(I(:)); %定义一个中间变量 Ivar=var(t); %计算图像的方差 IvarStd=sqrt(var(t)); %通过var函数求图像灰度的标准差 %%下面我们也可以通过公式计算图像灰度的标准差 meanValue=mean(I(:)); %通过mean计算灰度图像的均值 sum=0; t2=double(I(:));%数据类型转换 for i=1:m\*n sum=(t2(i,1)-meanValue).\^2+sum; end Ivariance=sqrt(sum/(m\*n-1)); %通过数学公式计算其图像灰度标准差 figure, subplot(2,2,1),imshow(I),title('imshow(I)-显示图像'); subplot(2,2,2),imshow(I,\[\]),title('imshow(I,\[\])-显示图像'); subplot(2,2,3),imhist(I),title('显示灰度直方图'); subplot(2,2,4),imhist(I2),title('直方图均衡化图像'); format short fprintf('图像的均值是: %.3f\\n', Imean2); %格式化屏幕输出,保留小数点后3位 fprintf('图像的最大值和最小值分别是: %d %d\\n', Imax,Imin); fprintf('图像的对比度(Michelson对比度)是: %.3f\\n', Icontrast); fprintf('图像的标准差是: %.3f\\n', IvarStd); 注:本程序在MATLAB 2018 b调试通过。 ### 三、主要运行结果 ![](https://i-blog.csdnimg.cn/direct/887a7e44635c4ea8b55effdc3fb126c8.png) ![](https://i-blog.csdnimg.cn/direct/e596b75d54be4e74b4cbf459604b13b4.png) ### 四、原始图像 ![](https://i-blog.csdnimg.cn/direct/4c70408bb28c4ec7b0f18cd0afb2ec15.png) 如果大家觉得本文对大家学习和研究有帮助,请点赞、收藏,谢谢大家!

相关推荐
羑悻的小杀马特36 分钟前
OpenCV 引擎:驱动实时应用开发的科技狂飙
人工智能·科技·opencv·计算机视觉
guanshiyishi4 小时前
ABeam 德硕 | 中国汽车市场(2)——新能源车的崛起与中国汽车市场机遇与挑战
人工智能
极客天成ScaleFlash4 小时前
极客天成NVFile:无缓存直击存储性能天花板,重新定义AI时代并行存储新范式
人工智能·缓存
澳鹏Appen5 小时前
AI安全:构建负责任且可靠的系统
人工智能·安全
蹦蹦跳跳真可爱5896 小时前
Python----机器学习(KNN:使用数学方法实现KNN)
人工智能·python·机器学习
视界宝藏库6 小时前
多元 AI 配音软件,打造独特音频体验
人工智能
xinxiyinhe7 小时前
GitHub上英语学习工具的精选分类汇总
人工智能·deepseek·学习英语精选
ZStack开发者社区7 小时前
全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践
人工智能·云计算
Mason Lin7 小时前
2025年3月29日(matlab -ss -lti)
开发语言·matlab
Spcarrydoinb8 小时前
基于yolo11的BGA图像目标检测
人工智能·目标检测·计算机视觉