Error using + Matrix dimensions must agree.

function allCenters = getDominoValues(BW, bbox, colorIm)
for i = 1:length(bbox)
dominoImage = imcrop(BW, bbox(i,:));
[centers, radii] = imfindcircles(dominoImage, [3 8]);
dominoImageOffset = repmat(double(bbox(i,1:2)), (length(centers)/2), 1);
absoluteCenters{i} = centers(:,:) + dominoImageOffset(:,:);
allRadii{i} = radii;
end
J = colorIm;
for i = 1:length(bbox)
J = insertMarker(J, absoluteCenters{i});
end
imshow(J);
At the moment I am getting the following message "Error using + Matrix dimenions must agree" when "absoluteCenters{i} = centers(:,:) + dominoImageOffset(:,:);" is executed. I have executed the same line in the command script, and I get no error messages.
Does anyone know why this might be happening?
Thanks.

1 comentario

KSSV
KSSV el 19 de Oct. de 2016
You sure the dimensions of centers and dominoImageOffset are same? You can call them by centers + dominoImageOffset. centers(:,:) + dominoImageOffset(:,:) this is not required.

Iniciar sesión para comentar.

 Respuesta aceptada

Jan
Jan el 19 de Oct. de 2016
It is hard to guess remotely, but you can inspect the problem very easy locally:
dbstop if error
Then run your code again until it stops at the error. Now check the dimensions:
size(centers)
size(dominoImageOffset)
As Matlab tells you, they have different sizes.
Perhaps you do not mean length(centers), which is the longest dimension, but size(centers, 1). Never rely on length to pick up the dimension you are meaning.

Más respuestas (0)

Categorías

Más información sobre Performance and Memory en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 19 de Oct. de 2016

Respondida:

Jan
el 19 de Oct. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by