matlab基础常用代码

可参考https://blog.csdn.net/m0_37402140/article/details/78107719

读图 I=imread('1.png')

灰度化 X=rgb2gray(I)

输出直方图imhist(I)

im2bw函数(将灰度图像转换为二值图像)

imshow(I)显示图像;

disp()直接在命令行输出

IndMin=find(diff(sign(diff(h)))>0)+1;波谷的位置

[C,index] = max(A):返回返回行向量C和index,C向量记录矩阵A每列的最大值,index记录A每列最大值的行号(即每列最大值的索引)

参考https://www.cnblogs.com/shuqingstudy/p/5079716.html

graythresh(image)使用最大类间方差法找到图片的一个合适的阈值(threshold),再利用im2bw(将灰度图像转换为二值图像)函数,将找到的阈值输入,就可以把原图变为一个二值图

参考 https://blog.csdn.net/leichaoaizhaojie/article/details/52589123

中值滤波medfilt2 参考https://blog.csdn.net/Pxzly1117/article/details/79201772

重点研究findpeaks函数 /还需要再理解

Fs=1;%采样频率
MinPeakProminence=max(data)/4;%峰最小突起幅度门限
threshold=0;%峰值点与邻近点比较门限
MinPeakHeight=max(data)/5;%最小峰高度门限
MinPeakDistance=600/Fs;%最小峰间距门限
nPeaks=6;%最多找nPeaks个峰
sortstr='none';%结果排序
Annotate='extents';%丰富的输出
%峰宽度计算标准,halfprom:半突起幅度宽;halfheight:半高宽
WidthReference='halfprom';
findpeaks(data,Fs,'MinPeakProminence',MinPeakProminence,...
'threshold',threshold,'MinPeakHeight',MinPeakHeight,...
'MinPeakDistance',MinPeakDistance,'npeaks',nPeaks,...
'sortstr',sortstr,...
'Annotate',Annotate,'WidthReference',WidthReference);

缺点:只有波峰没有波谷
IndMin=find(diff(sign(diff(data)))>0)+1;
IndMax=find(diff(sign(diff(data)))<0)+1;
其中的,
IndMin, data(IndMin)对应的是波谷点的数据
IndMax,data(IndMax)对应的是波峰点的数据

abs()求绝对值
round()四舍五入

你可能感兴趣的:(matlab基础常用代码)