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

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

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2016년 10월 19일

0 개 추천

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.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Performance and Memory에 대해 자세히 알아보기

태그

질문:

2016년 10월 19일

답변:

Jan
2016년 10월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by