MATLAB: How to select 100 highest coefficient from Curvelet subband image

curvelet

Input image size is 256×256 How to calculate number of levels required for this image size. How to select 100 highest coefficient from Curvelet subband image.

Best Answer

There are a couple ways you can do this depending on how you want to deal with repeated values. Here's a solution that finds indices for the 5 largest values (which could include repeated values):
[sortedValues,sortIndex] = sort(A(:),'descend');
maxIndex = sortIndex(1:5);
Here's a solution that finds the 5 largest unique values, then finds all elements equal to those values:
sortedValues = unique(A(:));
maxValues = sortedValues(end-4:end);
maxIndex = ismember(A,maxValues);
Related Question