前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab GUI基础8

matlab GUI基础8

作者头像
瓜大三哥
发布2018-02-26 15:45:01
1.2K0
发布2018-02-26 15:45:01
举报
文章被收录于专栏:瓜大三哥瓜大三哥

图像处理工具箱

从屋物理和数学角度看,图像时记录物体辐射能量的空间发呢不,这个分布是空间坐标、时间坐标和波长的函数,即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算子等。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 图像处理工具箱
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档