matlab GUI基础8

图像处理工具箱

从屋物理和数学角度看,图像时记录物体辐射能量的空间发呢不,这个分布是空间坐标、时间坐标和波长的函数,即i = f(x,y,z,λ,t),这样的图像能被计算机处理,计算机图像处理即数字图像处理matlab的长处就是处理矩阵运算,因此使用matlab处理数字图像非常方便,计算机图像处理是利用计算机对数字图像进行一系列操作,从而获得预期的结果的技术。

1.图像类型转换

函数

说明

dither

图像抖动,将灰度图变成二值图,或将RGB图像抖动成索引图像

gray2ind

将灰度图转换为索引图象

grayslice

通过设定阈值将灰度图像转换为索引图象

im2bw

通过设定高亮度阈值将RGB、索引或灰度图像转换为二值图像

ind2gray

将索引图象转换为灰度图

ind2rgb

将索引图像转换为RGB图像

mat2gray

将数据矩阵转换成灰度图像

rgb2gray

将RGB如想转换成灰度图

rgb2indd

将RGB图像转换成索引图象

2.图像浏览器

采用imtool进行图像的显示

imtool('C:\Users\lenovo\Desktop\小龙女.jpg')

3.图像的常用操作

3.1图像的基本运算

在matlab进行图像处理时,由于图像数据类型为uint8,而在矩阵运算中要求所有的运算变量为double类型。因此必须将图像数据类型转换为双精度型数据。在matlab中,通过函数im2double()将图像数据转换为双精度浮点型。

imadd(A,B,’uint16’);
imsubtract(A,B);
immultiply(A,0.5);
imdivide(A,B);
A=imread('C:\Users\lenovo\Desktop\xiaopang.tif');
B=imread('C:\Users\lenovo\Desktop\xiaolongnv.jpg');
[m,n,t]=size(A)
for i=1:m
 for j=1:n
 for k=1:t
            C(i,j,k)=B(i,j,k);
 end
 end
end
D=imadd(A,C,'uint8');
imshow(D); 

4.图像的直方图和直方图均衡化

imhist()计算和显示程序的直方图

imhist(I):该函数绘制绘图图像的直方图

imhist(I,n):该函数指定灰度级的数目为n

imhist(X,map):该函数绘制索引图像的直方图

[counts,x]=imhist():该函数返回直方图的数据,通过stem(x,counts)可以绘制直方图

histeq()实现直方图的均衡化,该函数用于灰度图像和索引图像。

5.图像的对比度增强

imadjust()可以进行图像的对比度增强,

J=imadjust(I):该函数对灰度图像按I进行对比度增强

J=imadjust(I,[low_in;high_in],[low_out;high_out]):该函数中[low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]变换后的灰度范围

RGB2=imadjust(RGB1,...):该函数对RGB图像进行对比度增强

6.图像的插值

插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连接函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。在matlab中通过插值可以实现图像的缩放和旋转。

imresize()采用插值的方法来改变图像的大小

imrotate()进行图像的旋转。

7.给图像添加噪声

J=imnoise(I,type):该函数对图像添加类型为type的噪声。参数Type对应的噪声类型如下:

‘gaussian’:高斯白噪声

’localvar’:均值白噪声

‘poisson’:泊松噪声

‘salt & pepper’:椒盐噪声

‘speckle’:乘性噪声

J1=imnoise(B,'gaussian',0.1);

J2=imnoise(B,'poission');

J3=imnoise(B,'salt & pepper',0.1);

figure;

subplot(221),imshow(B),title('原图像');

subplot(222),imshow(J1),title('gaussian');

subplot(223),imshow(J2),title('poission');

subplot(224),imshow(J3),title('salt & pepper');

8.图像剪切

函数imcrop()实现图像的剪切,获取图像的一部分(矩形区域)

J=imcrop(I,[横坐标 纵坐标 长 宽]);

9.图像的傅里叶变换

通过函数fft2()计算图像的二维快速傅里叶变换,该函数的调用格式为:

Y=fft2(X):该函数计算图像数据X的二维傅里叶变换

Y=fft2(X,m,n):该函数通过补0来指定数据的大小

10.离散余弦变换(DCT)

采用不同频率和幅值的余弦函数来逼近函数。离散余弦变换常用来进行图像的压缩,例如JPEG格式的图像就是采用了离散余弦变换进行压缩。

dct2():二维离散余弦变换

idct2():二维离散余弦反变换

11.图像增强技术

数字图像的增强是图像处理中的一个重要研究内容之一,是图像处理的一项基本技。

通常采用impixel()来获取图像的像素值,该函数的调用方式有:

p=impixel(I):该函数通过鼠标单击获取灰度图像中的一点的像素值。

p=impixel(X,map):该函数通过鼠标单击获取索引图像中一点的像素值。

p=impixel(RGB):该函数通过鼠标单击获取RGB图像中一点的像素值。

p=impixel(I,c,r):该函数获取灰度图像中,行为c,列为r的像素点的像素值。

p=impixel(I,map,c,r):该函数获取索引图像中,行为c,列为r的像素点的像素值。

p=impixel(I,RGBc,r):该函数获取RGB图像中,行为c,列为r的像素点的像素值。

也可以利用impixelinfo()获取图像中任意点的像素值。

利用imcontour()可以绘制灰度图像的等高线。

12.图像的滤波

对于含有噪声的图像,可以对图像进行滤波,使图像变得更清晰,常用的滤波方法 有邻域平均法,中值滤波法和自适应滤波法。

medfilt2():对图像进行中值滤波,去除噪声,很好的保护图像的边缘

wiener2():进行自适应滤波

13.图像的边缘检测

在进行图像分析和处理时,图像的边缘包含许多重要的信息,可以利用边缘检测来对图像进行分割。

在matlab中,采用函数edge()来对图像的边缘进行检测。在进行边缘检测时,常用的算子有sobel算子、Prewitt算子、Roberts算子、LOG算子和Canny算子等。

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

机器学习中最流行的模型之一,用于分类的支持向量机的完整介绍

支持向量机(SVM)是一个非常强大而多变的机器学习模型,能够执行线性或非线性的分类,回归,甚至异常值检测。它是机器学习中最流行的模型之一,任何对机器学习感兴趣的...

5777
来自专栏机器学习、深度学习

语义分割--End-to-End Instance Segmentation with Recurrent Attention

End-to-End Instance Segmentation with Recurrent Attention CVPR2017 https://g...

3178
来自专栏自学笔记

Neural Network

重新回顾一下一开始学的PLA,preceptron learning Algorithm。PLA适用于二维及高维的线性可分的情况,如果是非线性可分的数据,如果使...

2052
来自专栏数值分析与有限元编程

子空间迭代法求结构自振频率

在结构模态分析中一般不需要求解结构的所有特征对,而只需要求解部分低阶特征对。子空间迭代算法就是用于求解结构部分低阶特征对。许多著名的商业有限元分析软件都有这种求...

3765
来自专栏窗户

为什么有导师的基于梯度下降的机器学习喜欢用欧氏距离来度量误差

  bp神经网络为大家所熟知,推导中使用了基于梯度下降。而对于更为一般的情况,解决问题的出发点是建立一组函数fi(Ci,Xi), i=1..n,n为输出的个数,...

2266
来自专栏用户2442861的专栏

卷积神经网络全面解析

最近仔细学习了一下卷积神经网络(CNN,Convolutional Neural Network),发现各处资料都不是很全面,经过艰苦努力终于弄清楚了。为了以后...

1141
来自专栏GopherCoder

线性代数:一切为了更好的理解

1842
来自专栏张俊红

Sklearn参数详解—Adaboost

今天这篇讲讲集成学习,集成学习就是将多个弱学习器集合成一个强学习器,你可以理解成现在有好多道判断题(判断对错即01),如果让学霸去做这些题,可能没啥问题,几乎全...

1663
来自专栏林德熙的博客

卷积神经网络全面解析

本文转自: http://www.moonshile.com/post/juan-ji-shen-jing-wang-luo-quan-mian-jie-xi ...

1872
来自专栏机器学习原理

机器学习(5)——KNNKNNKD Tree

前言:KNN算法以一种“物以类聚”为思想的方法,它不同于前面提到的回归算法,没有损失函数,通过判断预测值离的远近来预测结果。主要分为KNN算法和KD-Tree来...

3475

扫码关注云+社区