大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
目录
图像类型的转换
RGB图像转为灰度图像:X=rgb2gray(I) %I为RGB图像,X为转换后的图像
RGB图像转换为索引图像:
[X,map]=rgb2ind(I,tol) %toll的范围是0.0到1.0,map包含至少(floor(1/tool)+1)^3个颜色
[X,map]=rgb2ind(I,N)%map包含至少N个颜色
X=rgb2inb(I,map) %【x,map】对应的是索引图像,colorcube(M)返回包含colorcube的M × 3矩阵。M = 256, colorcube返回完全一样的颜色。当M < 8时,长度为M的灰色斜坡返回。
灰度图像转换为索引图像:
[X,map]=gray2ind(I,n)%该函数是将灰度图像转为索引图像,灰度级为n
[X,map]=gray2ind(BW,n)%该函数是将二值图像BW转换为索引图像
map中对于的颜色值为颜色图gray(n)中的颜色值,gray(M)返回一个包含灰度色图的M × 3矩阵
I=grayslice(G,n)%该函数是将灰度图像中的像素灰度均匀化为n个等级转换为索引色图像,然后imshow(I,jet(n)),jet()函数生成颜色映射表,给图像I对于像素点加上颜色
索引图像转换为灰度图像:
I=ind2gray(X,map)%该函数将具有颜色映射表map的索引图像转化为灰度图像,[X,map]=imread();
索引图像转为RGB图像:
RGB=ind2rgb(X,map)%索引图像中的map表直接赋给RGB中对应像素的颜色值,肉眼下两图一样
灰度图像,RGB转换为二值图像:
BW=im2bw(I,level)%level为设置的阈值参数,取值范围在[0,1],输出图像BW用白色替换输入图像中亮度大于level*255的所有像素,用黑色替换其他,像如果没有指定level, im2bw将使用值0.5。
数值矩阵转换为灰度图像:
I=mat2gray(X,[xmin,xmax])%1指白色,0指黑色,数据矩阵小于0取xmin,大于1取xmax。
图像文件读写
文件信息的读取:imfinfo(‘文件名件.类型’)%可以查看图像的图像类型,大小等。
图像文件的读取:
I=imread(‘文件名件.类型’)%灰度图像M*N二维,真彩色图像M*N*3的三维数组。
[X,map]=imread(‘文件名件.类型’)%索引图像,map用于存储与索引图像相关的颜色映射表。
[X,map]=imread(‘文件名件.GIF’,idx)%idx读取第几帧图像。
图像文件的保存:
imwrite(I,’文件名件’,’类型’)将图像I保存。
imwrite(X,map,’文件名件’,’类型’)用于保存索引图像。
图像显示函数:
imshow(I) imshow(‘文件’) imshow(X,map)%图像视窗
imtool(I)%图像工具浏览器
image(I) image([1,2],[3,4],I)%X轴1到2,y轴4到3,个人理解类似于A([1 2],[2 3])这种。
image有坐标轴区别于前面两个函数
彩色条:
colorbar%在图像上形成一个彩色条,默认在右侧
imshow(I),colorbar;
colobar(‘off’) 、colobar(‘hide’)和colobar(‘delete’)删除当前轴所有的相关彩色条。
视频文件读写
v = VideoReader(filename)%读取视频
v.NumberOfFrames%获取视频帧数(我用的是matlab2016a,V结构里面没有总帧数所以加上了)
read(v,[1 10])%读取视频中的1:10帧
read(v,[1 Inf])%从第 1 帧开始读取到视频结束。
VideoReader.getFileFormats()%查看在你的matlab上 VideoReader支持的文件格式列表
数字图像的运算
图像的加法:imadd(X,Y)%其中X,Y为大小相等的图像矩阵,Y如果是数字则表示在原图像X上每个像素值加30,这里不能用索引图像。
附加噪声:imnosie(I,type,parameters)%type为噪声类型:gaussian(高斯噪声),localvar(零均值的高斯噪声),poisson(泊松噪声),salt & pepper(椒盐噪声)
J = imnoise(I,’gaussian’,M,V),M-均值,V-方差
J = imnoise(I,’localvar’,V)
J = imnoise(I,’poisson’)
J = imnoise(I,’salt & pepper’,d),其中d为噪声密度。 这将影响大约d*numel(I)像素,d的默认值是0.05
图像的减法:imsubtract(X,Y),这里Y可以是常熟类似于上面的加法—获取两个图像之间的差异
图像的乘法:immulitply(X,Y)——实现图像局部显示
Y–常数,大于1起亮度增强的作用
图像的几何变换
impixel(I,C,R)%输出像素的颜色
图像的缩放[B,newmap]=imresize(A,map,m)%m为缩放比例
B=imresize(A,m) B=imresize(A,[行,列])%缩放后的行列
图像的旋转imrotate(A,angle)
图像的修剪imcrop(X,行,列),imcrop(I)–截选好图像,然后双击
图像的平移:
J(i+a,j+b,:)=I(i,j,:)
将图像的数据类型转换为双精度–目的是提高精度im2double(I)
图像的转置:
图像的空间变换:B=imtransform(A,TFORM);A是图像矩阵,TFORM通过maketform()返回
maketform(‘affine’,D)%平移,缩放,旋转
返回二维的参数结构体,输入D应该是(2+1)*(2+1)或者(2+1)*2的矩阵
如果是3*3的矩阵,最后一列应该为(zeros(2,1);1)
平移 | 1 | 0 |
0 |
1 | ||
缩放 | 0 | 0 | 0 | 0 | ||
旋转(逆时针a) | cosa | sina | 0 | -sina | cosa | 0 |
eg:
灰度变换增强
灰度图像的直方图可以通过imhist()获取,或通过编程 k=I(i,j);N(k+1)=N(k+1)+1
imadjust(I,[0.2,0.5],[0,1])%小于255*0.2的灰度值设为0。
灰度图像的亮度改变brighten(n),通常放在imshow()的后面%n>0&&n<1,图像变亮,。
最佳输入区间:stretchlim(I)%获取最佳区间。
灰度反转:imcomplement()%0变为255,将灰度值为X的像素值转换为255-X。
RGB图像也可以求直方图(分解R,G,B) imhist(I(:,:,1))%计算R分量的直方图。
直方图均衡化:histeq()%直方图是近似均匀的。
图像的统计特性
图像的均值:mean2()计算矩阵的均值,对于RGB图像mean(I(:,:,1))先弄成2维矩阵。
图像的标准差std2()
图像的相关系数:两个大小相等的二维矩阵,可以计算相关系数,corr2(A,B)。
图像的等高线:imcontour(I,n)%n为设置等高线的条数,不指定函数会自动选取n,好玩。
空域滤波
空域滤波是对图像中每一个像素为中心的领域进行的一系列的运算
线性空域滤波:线性平均滤波是一种常用的线性空域滤波,它是一种低通滤波,信号低频部分通过,阻止高频部分通过。由于图像的边缘处于高频部分,因此线性平均滤波后,会造成图像边缘的模糊。
eg:常用的模版大小为3X3,如下所示:
对图像进行平滑: imfilter(I,T),
通过卷积进行滤波C = conv2(A,B,’___’)—锐化滤波后得到的图像,图像的边缘部分得到了加强
same——返回与A大小相同的卷积的中心部分。B是模版
full——返回完整的二维卷积,默认的
conv2%把图像的轮廓描绘出来,K=原图-卷积后的图%边缘部分会加强。
非线性空域滤波:
中值滤波:是一种保护边缘的非线性图像平滑方法——medfilt2(I)进行图像的二维中值滤波,中指滤波非常适合去除椒盐噪声,取得非常好的滤波效果。
wiener2()根据图像的噪声进行自适应滤波,该函数根据图像的局部方差来调整滤波器的输出,当局部方差大时,滤波器的平滑效果较弱;当局部方差小时,滤波器的平滑效果较强。
J = wiener2(I,[m n])使用像素方向自适应Wiener滤波对图像I进行滤波,使用大小为m × n的邻域来估计局部图像的均值和标准差。
排序滤波:ordfilt()还不会,这就很难受,书上的代码看不懂
频域滤波:
通过傅里叶变换将图像从空间域转换为频率域,然后在频率域内对图像进行处理,最后通过傅里叶反变换转换到空间域。
低通滤波:作用是过滤掉包含在高频中的噪声,同时也抑制了图像边缘
对于大小为M*N的图像,频率点(u,v)与频率中心的距离为D(u,v)其表达式为:
1.理想低通滤波器:Do为理想低通滤波器的截止频率,在半径为Do的范围内,所有频率都可以没有衰减的通过滤波器,在半径之外的全部衰减为0。理想低滤波器具有平滑图像的作用,但是有很严重的振铃现象(振铃效应,是由于在图像复原中选取了不适当的图像模型造成的,振铃效应产生的直接原因是图像退化过程中信息量的丢失,尤其是高频信息的丢失,其严重降低了复原图像的质量,并且使得难于对复原图像进行后续处理)