Finding TP, TN, FP, FN using histc. First Input must be a real non-sparse numeric array (error)

1 visualizzazione (ultimi 30 giorni)
I am finding TP, TN, FP, FN (confusion matrix) of predicted and actual image. smapImg is the predicted/output image and gtImg is the actual/ground truth image.
TP = histc(smapImg(gtImg), 0:255);
FP = histc(smapImg(~gtImg), 0:255);
FN = histc(~smapImg(gtImg), 0:255);
TN = histc(~smapImg(~gtImg), 0:255);
I am getting this error "First Input must be a real non-sparse numeric array" while computing FN and TN, while TP and FP are computing correctely. Please help.

Risposta accettata

Adam Danz
Adam Danz il 20 Ago 2019
Modificato: Adam Danz il 21 Ago 2019
The negation (~) is turnning the array into a logical array. As the error message indicates, the first input is expected to be numeric (not logical).
~smapImg(gtImg)
Example
t = uint8(rand(1,10))
class(t)
ans =
'uint8'
t2 = ~t;
class(t2)
ans =
'logical'
A reproduction of the error using the logical vector
histc(t2,1:3)
Error using histc
First Input must be a real non-sparse numeric array.

Più risposte (0)

Categorie

Scopri di più su Image Processing Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by