全宽峰
15的观点(30天)
显示旧的评论
接受的答案
图像分析
2021年8月7日
试试这个:
%找到双方的高峰。
clc;%清除命令窗口。
关闭所有;%关闭所有数据(除了imtool。)
清晰;%擦掉所有现有的变量。或者clearvars如果你想要的。
工作空间;%确定工作区面板显示。
格式长g;
格式紧凑的;
字形大小= 15;
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
% % Mahsa忘了上传数据所以我被迫的
%,试图重现图像。
rgbImage = imread (“image.png”);
imshow (rgbImage)
轴在
grayImage = rgb2gray (rgbImage);
imshow (grayImage);
impixelinfo
掩码= grayImage = = 255;
道具= regionprops(面具,的边界框(“大小));
%下降8摆脱刻度线。
bb = props.BoundingBox
bb (1) = bb + 8 (1);
bb (2) = bb (2) + 8;
bb (3) = bb (3) - 16;
bb (4) = bb (4) - 16;
grayImage = imcrop (grayImage, bb);
imshow (grayImage);
(行、列)= (grayImage)大小;
y = 0(列,1);
为坳= 1:列
t =找到(grayImage(:,上校)< 255、1“第一”);
如果~ isempty (t)
y (col) =行- t;
结束
结束
图
e5 e5 x = linspace(2.54, 2.69,长度(y));
% y - -50 + 275
y =重新调节(y, -50, 275);
情节(x, y,“b -”,“线宽”2);
网格在;
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%现在我们有我们的数据,就可以开始了。
[peakValues, indexesOfPeaks] = findpeaks (y,“MinPeakHeight”15);
numPeaks =长度(peakValues);
numPeaks peakLeft = 1 (1);
numPeaks peakRight = 1 (1);
%找到山谷左边的高峰
持有在;
为k = 1: numPeaks
情节(x (indexesOfPeaks (k)), y (indexesOfPeaks (k)),' r + ',“线宽”2,“MarkerSize”,20);
为k2 = indexesOfPeaks (k): 1: 1
如果y (k2) > y (k2 + 1)
打破;
结束
结束
peakLeft (k) = k2;
结束
%找到谷右边的高峰
为k = 1: numPeaks
为k2 = indexesOfPeaks (k):长度(y) 1
如果(k2 + 1) > y (k2)
打破;
结束
结束
peakRight (k) = k2;
结束
用x %如果你想要的位置而不是索引:
xLeft = x (peakLeft);
xRight = x (peakRight);
%画出红线左边和右边的红线。
为k = 1:长度(xLeft)
参照线(xLeft (k),“颜色”,‘g’,“线宽”3);
参照线(xRight (k),“颜色”,“r”,“线宽”3);
结束
0评论
答案(1)
图像分析
2021年8月7日
你试过就定位山峰,然后“跌倒”两边,直到信号斜率转身?这将为光滑的峰值工作但不是那些有很多小肩峰主峰上,但我没有看到任何在你的信号。
附加你的信号在.mat文件是有用的,但你忘了。
2的评论
图像分析
2021年8月7日
编辑:图像分析
2021年8月7日
附上您的文件在一个. zip文件,并将其附加的回形针图标。类似(未测试)
[peakValues, indexesOfPeaks] = findpeaks (y);
numPeaks =长度(peakValues);
numPeaks peakLeft = 1 (1);
numPeaks peakRight = 1 (1);
%找到山谷左边的高峰
为k = 1: numPeaks
为k2 = indexesOfPeaks (k): 1: 1
如果y (k2) > y (k2 + 1)
打破;
结束
结束
peakLeft (k) = k2;
结束
%找到谷右边的高峰
为k = 1: numPeaks
为k2 = indexesOfPeaks (k):长度(y)
如果(k2 + 1) > y (k2)
打破;
结束
结束
peakRight (k) = k2;
结束
现在你有数组给左右山峰的索引。