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 Kommentare

SuSo
SuSo am 5 Aug. 2015
Bearbeitet: SuSo am 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!
John
John am 5 Aug. 2015
Hi SuSo, I never got a solution to it. I simply used try/catch statement to skip the errors.
SuSo
SuSo am 6 Aug. 2015
Lol that's exactly what I did. Pity. Thanks!
SarTho
SarTho am 9 Jun. 2016
I faced the same problem with multithresh und solved it by just applying some light preprocessing filter (gauss etc) on the input.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Gefragt:

am 10 Mär. 2015

Bearbeitet:

am 9 Jun. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by