Initial Commit.
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
function [peakindex2D, peakval2D] = findpeak2D(data2D, th)
|
||||
|
||||
[Nrow, Ncol] = size(data2D);
|
||||
|
||||
peakindex2D = zeros(Nrow, Ncol);
|
||||
peakval2D = zeros(Nrow, Ncol);
|
||||
|
||||
if isempty(th)
|
||||
for rowidx = 1 : Nrow
|
||||
for colidx = 1 : Ncol
|
||||
indexset = [rowidx-1 colidx; rowidx+1 colidx; rowidx colidx-1; rowidx colidx+1];
|
||||
det_indexset = (indexset(:,1) > 0) .* (indexset(:,1) < Nrow+1) .* (indexset(:,2) > 0) .* (indexset(:,2) < Ncol+1);
|
||||
det_indexset = find(det_indexset > 0);
|
||||
cond_peak = 0;
|
||||
index_iter_len = length(det_indexset);
|
||||
for indexset_idx = 1 : length(det_indexset)
|
||||
if data2D(rowidx, colidx) >= data2D(indexset(det_indexset(indexset_idx),1), indexset(det_indexset(indexset_idx),2))
|
||||
cond_peak = cond_peak + 1;
|
||||
end
|
||||
end
|
||||
|
||||
if cond_peak == index_iter_len
|
||||
peakindex2D(rowidx, colidx) = 1;
|
||||
peakval2D(rowidx, colidx) = data2D(rowidx, colidx);
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
for rowidx = 1 : Nrow
|
||||
for colidx = 1 : Ncol
|
||||
indexset = [rowidx-1 colidx; rowidx+1 colidx; rowidx colidx-1; rowidx colidx+1];
|
||||
det_indexset = (indexset(:,1) > 0) .* (indexset(:,1) < Nrow+1) .* (indexset(:,2) > 0) .* (indexset(:,2) < Ncol+1);
|
||||
det_indexset = find(det_indexset > 0);
|
||||
cond_peak = 0;
|
||||
index_iter_len = length(det_indexset);
|
||||
for indexset_idx = 1 : length(det_indexset)
|
||||
if data2D(rowidx, colidx) >= data2D(indexset(det_indexset(indexset_idx),1), indexset(det_indexset(indexset_idx),2))
|
||||
cond_peak = cond_peak + 1;
|
||||
end
|
||||
end
|
||||
|
||||
if cond_peak == index_iter_len && data2D(rowidx, colidx) >= th
|
||||
peakindex2D(rowidx, colidx) = 1;
|
||||
peakval2D(rowidx, colidx) = data2D(rowidx, colidx);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user