Integers can only be combined with integers of the same class, or scalar doubles.

1 visualización (últimos 30 días)
mask = 1-double(im2bw(gray, graythresh(gray)));
strel = [0 1 1 1 0; 1 1 1 1 1; 1 1 1 1 1; 1 1 1 1 1; 0 1 1 1 0];%structuring element
shadowavg_red = sum(sum(image(:,:,1).*shadow_core)) / sum(sum(shadow_core));

Respuesta aceptada

Walter Roberson
Walter Roberson el 3 de Feb. de 2016
Whatever your shadow_core is, it is double precision, but your image variable is integer data type.
shadowavg_red = sum(sum(double(ImageArray(:,:,1)).*shadow_core)) / sum(sum(shadow_core));
or better yet,
mean(ImageArray(logical(shadow_core)))
Note the renaming of image to ImageArray. Using a variable named "image" always leads to problems.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by