Error in multithresh while computing N levels

I'm trying to compute the metrics of an image using multithresh for for N levels 2:20 (maximum allowed). In some of the images I get an error in the loop (see error below) especially at level N(j)=3. I'm not sure why I get this error with some images and not all. Please help.
[~, metric(j)] = multithresh(ROI, N(j) );
Attempted to access omega(-2); index must be a positive integer or logical.
Error in multithresh>objCriteriaND (line 264)
sigma_b_squared_val = omega(boundaries(1)).*((mu(boundaries(1))./omega(boundaries(1)) - mu_t).^2);
Error in multithresh>@(thresh)objCriteriaND(thresh,num_bins,omega,mu,mu_t) (line 148)
[thresh, minval] = fminsearch(@(thresh) objCriteriaND(thresh, ...
Error in fminsearch (line 309)
x(:) = xr; fxr = funfcn(x,varargin{:});
Error in multithresh (line 148)
[thresh, minval] = fminsearch(@(thresh) objCriteriaND(thresh, ... ||

4 Comments

SuSo
SuSo on 5 Aug 2015
Edited: SuSo on 5 Aug 2015
I have been having the same problem with multithresh, using N=3 or N=4. Works for some images but not for others. Have you had any luck finding a solution or a workaround?
Thanks!
Hi SuSo, I never got a solution to it. I simply used try/catch statement to skip the errors.
Lol that's exactly what I did. Pity. Thanks!
I faced the same problem with multithresh und solved it by just applying some light preprocessing filter (gauss etc) on the input.

Sign in to comment.

Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Asked:

on 10 Mar 2015

Edited:

on 9 Jun 2016

Community Treasure Hunt

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

Start Hunting!