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 Center および File ExchangeMATLAB 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