当前位置: 首页 > news >正文

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调试通过。

三、主要运行结果

四、原始图像

  如果大家觉得本文对大家学习和研究有帮助,请点赞、收藏,谢谢大家!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Nuxt 使用指南:掌握 useNuxtApp 和运行时上下文
  • SpringMVC源码深度解析(中)
  • 计算机视觉篇5 图像的位置--边框
  • 面经学习(厦门安全狗实习)
  • level 6 day2-3 网络基础2---TCP编程
  • OpenGL-ES 学习(7) ---- VBO EBO 和 VAO
  • 【人工智能】AI音乐创作兴起与AI伦理的新视角
  • 矩阵分析——线性积分方程组的矩阵解法研究
  • 华为OD机试(C卷,200分)- 二叉树计算
  • MYSQL2
  • Rudolph and Mimic
  • linux LED代码设计
  • 图形渲染基础-Unity渲染管线介绍
  • 基于Python+Django,开发的一个在线教育系统
  • Docker Machine 深入解析
  • 网络传输文件的问题
  • 【刷算法】求1+2+3+...+n
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • gulp 教程
  • Median of Two Sorted Arrays
  • ReactNative开发常用的三方模块
  • spring security oauth2 password授权模式
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • yii2中session跨域名的问题
  • 看域名解析域名安全对SEO的影响
  • 详解NodeJs流之一
  • 正则与JS中的正则
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • (3)(3.5) 遥测无线电区域条例
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (分布式缓存)Redis持久化
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)关于pipe()的详细解析
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)原始图像数据和PDF中的图像数据
  • .gitattributes 文件
  • .Net 4.0并行库实用性演练
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net SqlSugarHelper
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET中的十进制浮点类型,徐汇区网站设计
  • /var/spool/postfix/maildrop 下有大量文件
  • @Autowired注解的实现原理
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?