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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 19 Okt. 2016

0 Stimmen

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.

Weitere Antworten (0)

Kategorien

Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 19 Okt. 2016

Beantwortet:

Jan
am 19 Okt. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by