可参考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()四舍五入
网友评论