
图像处理的高级应用
MATLAB可以用于数字化建模仿真以及图像处理等功能,本人也在MATLAB中进行过图像处理的GUI设计,有一些感悟和心得,特整理成专栏,供大家参考,与大家共同进步!
技术小咖龙
向前跑,不惧冷眼和嘲笑
展开
-
MATLAB中三维图像的制作程序
下面来介绍一下如何在MATLAB完成三维立体图像的制作,具体如下:1、在MATLAB的主界面编辑器中写入下列代码:三维曲线图程序:clear all;%%表示清空所有变量及变量值%%t=0:pi/360:2*pi;x=sin(t);y=cos(t);z=2*x.^2+y.^2;plot3(x,y,z,'Color','r','LineWidth',2);%%三维曲线坐标轴...原创 2019-01-23 14:58:39 · 5265 阅读 · 0 评论 -
MATLAB中的Hough变换
下面来介绍一下关于Hough变换的原理及其如何在MATLAB中实现。Hough变换:Hough变换是一种使用表决原理的参数估计技术。其原理是利用图像空间和Hough参数空间的点-线对偶性,把图像空间中的检测问题转换到参数空间。国内外对Hough变换的研究及应用动态:Hough变换于1962年由Paul Hough提出,并在美国作为专利被发表。它所实现的是一种从图像空间到参数空间的映射关系。由于...原创 2019-01-18 16:18:16 · 11715 阅读 · 1 评论 -
MATLAB图像的乘除运算
下面来介绍一下MATLAB中的图像如何实现像素值的乘除运算,具体如下:1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %读取路径下的图片I2=imdivide(I,0.5); %将I图所有像素值乘以0.5I1=immultiply(I,0.6); %将I图...原创 2019-01-15 21:43:27 · 8137 阅读 · 1 评论 -
MATLAB中的图像融合
下面来介绍一下如何在MATLAB中实现图像的融合,具体原理及步骤如下:图像融合:图像融合是指将多源信道所采集到的关于同一目标的图像数据经过图像处理和计算机技术等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精度和可靠性、提升原始图像的空间分辨率和光谱分辨率,利于监测。图像融合作为信息融合的一个分支,是当前信息融合研究中的一个热点。图像融合的...原创 2019-01-15 21:18:08 · 23959 阅读 · 5 评论 -
MATLAB中的DCT实现
下面来介绍一下DCT的基本原理和其在MATLAB中的实现方法,具体如下:离散余弦变换(DCT )是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形...原创 2019-01-09 14:12:55 · 11248 阅读 · 1 评论 -
MATLAB中的连续小波变换CWT
下面来介绍一下如何在MATLAB实现CWT,也就是我们常说的连续小波变换,具体如下:所谓小波(wavelet),即存在于一个较小区域的波。小波函数的数学定义是:设ψ(t)为一平方可积函数,即ψ(t)∈L2(R),若其傅里叶变换Ψ(ω)满足条件: 则称ψ(t)为一个基本小波或小波母函数,并称上式是小波函数的可允许条件。1、打开MATL...原创 2019-01-09 13:53:26 · 17767 阅读 · 5 评论 -
MATLAB中roipoly函数用法
下面来介绍一下MATLAB中roipoly函数的用法,具体步骤如下:1、打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %读取当前路径下的图片B = rgb2gray(I); %彩色图灰度化g=[229 272 300 222 272 300]; %设置区域像素f=[21 21 75 121 ...原创 2019-01-08 21:36:27 · 12678 阅读 · 2 评论 -
MATLAB中实现特定像素区域处理
下面来介绍一下如何在MATLAB中对图像的某些特定像素值进行处理,具体如下:1、打开MATLAB,在其主界面的编辑器中写入下列代码:B=imread('eight.tif'); %读取图像g=[222 272 300 270 221 194]; %选取像素区间块f=[21 21 75 121 121 75]; %选取像素区间块j=roifill(B,g,f); ...原创 2019-01-08 19:14:42 · 14222 阅读 · 8 评论 -
MATLAB中图像邻域处理
下面来介绍一下MATLAB中如何进行图像的邻域处理,具体步骤如下:1、首先打开MATLAB,在其主界面的编辑器中写入下列代码:M=imread('G:\MATLAB\bm.bmp'); %读取当前路径下的图片I = rgb2gray(M); %变为灰度图g=inline('max(x(:))');B=nlfilter(I,[3 3],g); %邻域处理figur...原创 2019-01-08 19:02:10 · 3809 阅读 · 0 评论 -
MATLAB真彩色图像转换为索引图
下面来介绍一下如何在Matlab中将真彩色图像转换为索引图,具体步骤如下:1、打开MATLAB,在其主界面的编辑器中写入下列代码:load trees %加载图片I=ind2gray(X,map); %真彩色转索引图imshow(X,map)figure,imshow(I)2、保存代码至自定义路径下,点击运行,结果如下: 如图所示,由于RGB图像一个像素占用...原创 2019-01-08 18:51:26 · 10676 阅读 · 8 评论 -
MATLAB图像的阈值变换
下面来介绍一下MATLAB中如何使用阈值变换法把原图像转换成二值图像,所谓二值图,也就是只有黑白两种像素,具体如下:1、打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %读取当前路径下的图片BW=im2bw(I,map,0.4); %阈值变换中设置的阈值数为0.4imshow(I,map) ...原创 2019-01-08 18:45:02 · 5233 阅读 · 1 评论 -
图像的开启和闭合
下面来介绍一下图像的开启和闭合的原理及其在MATLAB中的实现过程:开运算:先腐蚀后膨胀的过程。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。开运算通常是在需要去除小颗粒噪声,以及断开目标物之间粘连时使用。其主要作用与腐蚀相似,与腐蚀操作相比,具有可以基本保持目标原有大小不变的优点。闭运算:先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体...原创 2018-11-22 20:56:02 · 2631 阅读 · 1 评论 -
图像的膨胀处理
下面来介绍一下关于图像膨胀的MATLAB实现原理及方法:所谓的图片的膨胀处理,其实就是在图像的边缘添加像素值,使得整体的像素值扩张,进而达到图像的膨胀效果,也可以说是信号与系统书中所提到的像素插值处理。1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %载入当前路径下的图像I1=rgb2gray(I);...原创 2018-11-22 16:21:09 · 6758 阅读 · 2 评论 -
提取图片的坐标
下面就介绍一下如何提取一副图片的四个坐标,在MATLAB中实现:1、打开MATLAB软件,在其主界面的编辑器中写入下列程序:a=imread('G:\MATLAB\bm.bmp'); %读取图片I=rgb2gray(a); %灰度化figureimshow(a) %显示原图figureimshow(I)...原创 2018-11-23 15:08:52 · 18361 阅读 · 20 评论 -
图像的腐蚀处理
简单介绍一下关于图像的腐蚀处理以及如何在MATLAB中实现的过程:腐蚀主要用于形态学中除去图像的某些部分,Matlab用imerode函数实现图像的腐蚀。1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %载入路径下的图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1...原创 2018-11-22 20:37:31 · 5040 阅读 · 1 评论 -
形态学骨架提取
下面我来介绍一下关于形态学中的骨架提取,并在MATLAB中实现:1、打开MATLAB软件,在其主界面的编辑器中写入下列程序:I=imread('G:\MATLAB\bm.bmp'); %读取当前路径下的图片subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; I...原创 2018-11-23 15:00:10 · 5586 阅读 · 2 评论 -
形态学边界提取
下面简单介绍一下形态学边界提取在MATLAB中的实现方法:1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %载入路径下的图像subplot(1,3,1),imshow(I);title('原始图像');axis([20,250,50,200]);grid on; %...原创 2018-11-23 14:51:38 · 1485 阅读 · 1 评论 -
MATLAB的非线性变换
下面来简单介绍一下基于MATLAB的非线性变换处理图像:1、首先打开MATLAB的主界面,在其中的编辑器中写入如下代码: I=imread('G:\MATLAB练习\bm.bmp'); %读取保存路径下的图片 I1=rgb2gray(I); subplot(1,2,1),imshow(I1); title(' 灰度图像'); axis([50,250,5...原创 2018-11-19 14:53:57 · 6385 阅读 · 2 评论 -
MATLAB的直方图均衡化
下面就来介绍一下如何对图像进行直方图均衡化处理:1、首先打开MATLAB软件,在主界面的编辑器中写入下列源代码: I=imread('G:\MATLAB练习\bm.bmp'); %读取保存路径的图片 I=rgb2gray(I); %图像的灰度化 figure; subplot(2,2,1); imshow(I); subpl...原创 2018-11-19 15:02:38 · 5342 阅读 · 8 评论 -
MATLAB实现Otsu算法
下面简要介绍一下如何在MATLAB中实现Otsu算法。具体步骤如下:1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %读取当前路径下的图片subplot(1,2,1),imshow(I);title('原始图像')axis([50,250,50,200]);grid on; ...原创 2018-11-22 16:08:34 · 20171 阅读 · 3 评论 -
MATLAB中canny算子边缘检测
今天来介绍一下关于canny算子做边缘检测的过程:Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘。好的定位- 标识出的边缘要与实际图像中的实际边缘尽可能接近。最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。1、首先打开MATLAB软件,在其主界面中写入下列代码:I=imre...原创 2018-11-22 08:46:22 · 32850 阅读 · 8 评论 -
MATLAB的图像平衡滤波
下面就简单介绍一下关于MATLAB的图像平衡滤波的技术:1、首先打开MATLAB软件,在主界面的编辑器中写入如下代码:I=imread('G:\MATLAB练习\bm.bmp'); %读取保存路径下的图片subplot(231)imshow(I)title('原始图像')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0...原创 2018-11-19 15:13:24 · 584 阅读 · 2 评论 -
MATLAB的图像中值滤波
下面来介绍一下图像的中值滤波方法:1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码:I=imread('G:\MATLAB\bm.bmp'); %读取保存路径下的图片I=rgb2gray(I);J=imnoise(I,'salt & pepper',0.02);subplot(231),imshow(I);title('原图像');subplot(2...原创 2018-11-19 15:23:51 · 37766 阅读 · 3 评论 -
MATLAB梯度算子处理图像
下面简要介绍一下不同的梯度算子对于图像处理的区别:其中Roberts算子,又称罗伯茨算子,是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子。他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。而Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉...原创 2018-11-20 17:17:43 · 16307 阅读 · 1 评论 -
MATLAB中的直方图阈值处理
接下来着重强调介绍一下关于用MATLAB来进行直方图阈值处理的步骤:图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度...原创 2018-11-22 16:01:13 · 12370 阅读 · 3 评论 -
MATLAB的图像灰度线性变换
下面重点介绍一下如何用MATLAB对图像进行灰度线性变换,具体如下:1、打开MATLAB主界面,在其中的编辑器中写入下列代码,其中I=imread('G:\MATLAB练习\bm.bmp');此代码是读入图片的语句,也就是我们想要处理的图片,这里我是存放在G盘的MATLAB练习文件夹中,名称叫bm的bmp图像,格式因存放位置而不同 I=imread('G:\MATLAB练习\bm.bmp'...原创 2018-11-19 10:03:42 · 26016 阅读 · 3 评论