Adaptive Multi-Level Threshold for image

Dear All;
I have an image with non-uniform illumination , i need to use adaptive threshold to compensate for that , then use multi level threshold to segment the image into Three regions, what is the best way to do that

Risposte (3)

Image Analyst
Image Analyst il 28 Set 2014
Try adapthisteq(). How you classify into 3 classes after that depends on how easy it is to find the thresholds. Write a script to flatten your image with adapthisteq() and then take the histogram and show it to us.

5 Commenti

Thank you very much for help.
in fact, Adaptive threshold makes it worse .
You can check the link below for the video source to undersatnd the situation http://www.youtube.com/watch?v=IjHZ4aEaCaE
What i am looking for is to segment the image into three area( Liquid, Gas, and Mix region at the border) I would like to combine both adaptive thresholding and multithresholding
I didn't say anything about adaptive threshold, just adaptive histogram equalization. But your idea might work. Give it a try.
@image analyst, my question is a little off topic but i need your help on this.
i have two images (as uploaded s1 & s2), one is having the boxes in x-axis direction and second is having the boxes in y-axis direction.
Question 1: how we can find that the boxes is in x-axis direction OR in y-axis direction?
Question 2:after finding the direction, extract/separate the boxes from that image?
@image analyst, my question is a little off topic but i need your help on this.
i have two images (as uploaded s1 & s2), one is having the boxes in x-axis direction and second is having the boxes in y-axis direction.
Question 1: how we can find that the boxes is in x-axis direction OR in y-axis direction?
Question 2:after finding the direction, extract/separate the boxes from that image?
(first see the imges 's1' & 's2')
Use regionprops() to get the bounding box and look at the width and height of it.

Accedi per commentare.

Have you tried using multithresh after adapthisteq? multithresh does multi-level thresholding using Otsu's method.
thresh = multithresh(I,2);
segI = imquantize(I,thresh);

1 Commento

thank you for the answer
Asi explainred, i need first to remove the non uniform illumination then use multi threshold , Non uniform illumanation function deose not works well for all cases that why I switch to adaptive thresholding but this one will give me binary image , my question how to combine both ?

Accedi per commentare.

mustafa alnasser
mustafa alnasser il 29 Set 2014
Thank you very much for help.
in fact, Adaptive threshold makes it worse .
You can check the link below for the video source to undersatnd the situation http://www.youtube.com/watch?v=IjHZ4aEaCaE
What i am looking for is to segment the image into three area( Liquid, Gas, and Mix region at the border) I would like to combine both adaptive thresholding and multithresholding

Richiesto:

il 28 Set 2014

Commentato:

il 13 Dic 2017

Community Treasure Hunt

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

Start Hunting!

Translated by