How to extract highest intensity area from a greyscale spectrogram?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Claudio Eutizi
am 22 Jan. 2021
Kommentiert: Claudio Eutizi
am 23 Jan. 2021
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.
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 23 Jan. 2021
You've given no criteria for how those areas are to be determined. You might want to use watershed() or superpixels(). Or use imbinarize() to segment on intensity (adaptive or global), or multithresh() for several global thresholds.
3 Kommentare
Image Analyst
am 23 Jan. 2021
Oh, OK. I would have used blockproc() if you wanted rectangular blocks but glad you solved it somehow.
I'm attaching several blockproc() demos in case you're still interested.
Weitere Antworten (1)
KALYAN ACHARJYA
am 22 Jan. 2021
Bearbeitet: KALYAN ACHARJYA
am 22 Jan. 2021
- 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 Kommentare
KALYAN ACHARJYA
am 23 Jan. 2021
Bearbeitet: KALYAN ACHARJYA
am 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.
Siehe auch
Kategorien
Mehr zu Image Processing and Computer Vision finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!