How to count the total number of blink?

1 回表示 (過去 30 日間)
nazmican
nazmican 2022 年 12 月 21 日
編集済み: Bora Eryilmaz 2022 年 12 月 21 日
Hi, I'm doing research on how count total number of blinks, is there any good resource for this task?
Thank You

採用された回答

Bora Eryilmaz
Bora Eryilmaz 2022 年 12 月 21 日
編集済み: Bora Eryilmaz 2022 年 12 月 21 日
You can use a peak detection algorithm such as the islocalmax() command: https://www.mathworks.com/help/matlab/ref/islocalmax.html
x = randn(100,1);
plot(x)
hold on
level = 1.0;
yline(level, 'r')
% Only find peaks above the level.
I = (x < level);
x(I) = 0;
% Indices of all peaks above level.
J = islocalmax(x);
count = sum(J) % Number of peaks
count = 17
plot(find(J), x(J), 'ro')
% Indices of the peaks above level that are at least 5 x-units apart.
J = islocalmax(x, 'MinSeparation', 5);
count = sum(J) % Number of peaks
count = 11
plot(find(J), x(J), 'bx')
hold off
  5 件のコメント
Bora Eryilmaz
Bora Eryilmaz 2022 年 12 月 21 日
See updated code above.
nazmican
nazmican 2022 年 12 月 21 日
Thank you

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2022 年 12 月 21 日
Not sure what "detect" means to you. But if the red line is your threshold and signals above the threshold are a blink, then you can count them with bwlabel". If you want to know what indexes contains a blink signal, you can use regionprops.
signal = rand(1, 200); % Sample signal
plot(signal, 'b-');
grid on;
xlabel('Index');
ylabel('Signal');
threshold = 0.9;
yline(threshold, 'Color', 'r', 'LineWidth',2)
binarySignal = signal > threshold;
[~, numBlinks] = bwlabel(binarySignal);
% If you want indexes of the blink runs, then you can use regionprops
props = regionprops(binarySignal, 'PixelIdxList')
props = 12×1 struct array with fields:
PixelIdxList
% Print them out
for k = 1 : numel(props)
theseIndexes = props(k).PixelIdxList;
fprintf('For region #%d, it has indexes : ', k)
fprintf('%d ', theseIndexes)
fprintf('\n')
end
For region #1, it has indexes :
13
For region #2, it has indexes :
61
For region #3, it has indexes :
71
For region #4, it has indexes :
75
For region #5, it has indexes :
81
For region #6, it has indexes :
84 85
For region #7, it has indexes :
100
For region #8, it has indexes :
140 141
For region #9, it has indexes :
148 149
For region #10, it has indexes :
174
For region #11, it has indexes :
177
For region #12, it has indexes :
194
  4 件のコメント
Bora Eryilmaz
Bora Eryilmaz 2022 年 12 月 21 日
編集済み: Bora Eryilmaz 2022 年 12 月 21 日
The code in this answer would require the Image Processing Toolbox.
Image Analyst
Image Analyst 2022 年 12 月 21 日
Uh, that's not my code. You should contact the author for a fix.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by