How to extract highest intensity area from a greyscale spectrogram?
Afficher commentaires plus anciens
Hello.
I got greyscale mel-spectrograms images from a dataset and I want to divide it into several areas and to obtain the area where pixels have highest intensity in average.
This will be useful to label the images with rectangles for a deep learning training.
Hope somebody will help me.
I attach a greyscale spectrogram I got where you can show me the way to do it.
Thank you.
Réponse acceptée
Plus de réponses (1)
KALYAN ACHARJYA
le 22 Jan 2021
Modifié(e) : KALYAN ACHARJYA
le 22 Jan 2021
1 vote
- Apply thresholding to cluster the image into two segment, certain higher pixel and lower value pixels.
- Get the largest blob as per requirement. (bwareafilt function)
What does "Major Intensity" mean here?
5 commentaires
Claudio Eutizi
le 22 Jan 2021
KALYAN ACHARJYA
le 22 Jan 2021
Modifié(e) : KALYAN ACHARJYA
le 22 Jan 2021
Lets say, the grayscale image is grayImage
temp=grayImage;
extract_roi=grayImage==max(grayImage(:));
temp(~extract_roi)=0;
imshow(temp); % Extracted ROI Image as temp variable
Claudio Eutizi
le 22 Jan 2021
Modifié(e) : Claudio Eutizi
le 22 Jan 2021
KALYAN ACHARJYA
le 23 Jan 2021
Modifié(e) : KALYAN ACHARJYA
le 23 Jan 2021
"but this code you wrote here shows a black image".
Most probably, there is only one maximum value pixel, so it is not easily visualized (check carefully). You can confirm the same with the extract_roi matrix, which must be the non-zero matrix.
Claudio Eutizi
le 23 Jan 2021
Catégories
En savoir plus sur Neighborhood and Block Processing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
