cameraIntrinsics expects 'abcd' to be type double, single.

조회 수: 2 (최근 30일)
Alexander Szambor
Alexander Szambor 2025년 1월 20일
편집: Walter Roberson 2025년 1월 20일
I need to specify camera Intrinsics.
For this i wrote:
KameraInnereien=cameraIntrinsics('focalLength',[0 0] ,'ImageSize',[1440 2560],'PrincipalPoint',[720 1280]);
When executing i get the Error:
Error using cameraIntrinsics
Expected abcd to be one of these types:
double, single
Error in vision.internal.cameraIntrinsicsImpl>parseInputsSimulation (line 223)
validateattributes(focalLength, {'double', 'single'}, ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in vision.internal.cameraIntrinsicsImpl>parseInputs (line 213)
r = parseInputsSimulation(defaultParams,varargin{:});
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in vision.internal.cameraIntrinsicsImpl (line 82)
r = parseInputs(varargin{:});
^^^^^^^^^^^^^^^^^^^^^^^^
Error in cameraIntrinsics (line 17)
this = this@vision.internal.cameraIntrinsicsImpl(varargin{:});
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in CV (line 134)
KameraInnereien=cameraIntrinsics('abcd',1 ,'focalLength',[0 0] ,'ImageSize',[1440 2560],'PrincipalPoint',[720 1280]); %'focalLength',[0 0] ,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Looking into the function that throws the Error shows the variable 'abcd', (which is kinda weird it looks like a Placeholder):
function r = parseInputsSimulation(defaultParams,varargin)
parser = inputParser;
focalLength = varargin{1};
validateattributes(focalLength, {'double', 'single'}, ...
{'vector','real', 'nonsparse', 'finite', 'positive'}, ...
'cameraIntrinsics', 'abcd');
filename = 'cameraIntrinsics';
parser.addRequired('focalLength', @(f)vision.internal.inputValidation.validateFocalLength(f,filename));
parser.addRequired('principalPoint', @(p)vision.internal.inputValidation.validatePrincipalPoint(p,filename));
parser.addRequired('imageSize', @(sz)vision.internal.inputValidation.validateImageSize(sz,filename));
parser.addParameter('RadialDistortion', defaultParams.RadialDistortion, ...
@vision.internal.calibration.CameraParametersImpl.checkRadialDistortion);
parser.addParameter('TangentialDistortion', defaultParams.TangentialDistortion,...
@vision.internal.calibration.CameraParametersImpl.checkTangentialDistortion);
parser.addParameter('Skew', defaultParams.Skew, @cameraIntrinsics.checkSkew);
% Parse and check optional parameters
parser.parse(varargin{:});
r = parser.Results;
end
What shall i do to avoid it, i tried declaring abcd when calling cameraIntrinsics, but obviously that did not work.
KameraInnereien=cameraIntrinsics('abcd',1 ,'focalLength',[0 0] ,'ImageSize',[1440 2560],'PrincipalPoint',[720 1280]);
Doing it with string Names " " instead of char ' ' does obviously not change the outcome.
Is abcd a Placeholder that is not implemented right or is the error on my part?

채택된 답변

Alexander Szambor
Alexander Szambor 2025년 1월 20일
Ah my Error was that the Focal Length is not Positive, you can not use 0, 0 which is hindering, what if i want to use a virtual image/ a pinhole camera, so without distortion?

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB Support Package for USB Webcams에 대해 자세히 알아보기

제품


릴리스

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by