Borrar filtros
Borrar filtros

Undefined function 'findScaleTransform' for input arguments of type 'double'. How to solve it?

1 visualización (últimos 30 días)
%%Rescale replacment video frame
% Load replacment video frame
videoFrame = step(video);
% Get replacement and reference dimensions
repDims = size(videoFrame(:,:,1));
refDims = size(referenceImage);
% Find transformation that scales video frame to replacmente image size, preserving aspect ratio
scaleTransform = findScaleTransform(refDims,repDims);
outputView = imref2d(size(referenceImage));
videoFrameScaled = imwarp(videoFrame, scaleTransform, 'OutputView', outputView);
figure(1)
imshowpair(referenceImage, videoFrameScaled, 'Montage');
i got this problem at this section, when i'm doing this tutorial:
any help will be appreciated.
thank you
  3 comentarios
dinesh92x
dinesh92x el 29 de Mzo. de 2017
Oh!! I have the same problem.If any body find solution please provide me. Why "findScaleTransform" is not working.??
jingshuig
jingshuig el 14 de Dic. de 2018
HI,
I think "findScaleTransform" is a private function in the example.
I'v find a solution . May be useful.
function [scaleTransform ]= findScaleTransform(refDims,repDims)
scaleTransform=affine2d([repDims(1)/refDims(1) 0 0 ; 0 repDims(2)/refDims(2) 0 ;0 0 1]);
end
Add this function in the dir,and named "findScaleTransform.m"

Iniciar sesión para comentar.

Respuestas (2)

S. Muhammad Hossein Mousavi
S. Muhammad Hossein Mousavi el 1 de Feb. de 2018
Please I have the same too.

jingshuig
jingshuig el 14 de Dic. de 2018
HI,
I think "findScaleTransform" is a private function in the example.
I'v find a solution . May be useful.
function [scaleTransform ]= findScaleTransform(refDims,repDims)
scaleTransform=affine2d([repDims(1)/refDims(1) 0 0 ; 0 repDims(2)/refDims(2) 0 ;0 0 1]);
end
Add this function in the dir,and named "findScaleTransform.m"
  2 comentarios
jingshuig
jingshuig el 2 de En. de 2019
add some new:
% 2019 01 02
%find transform
function [scaleTransform ]= findScaleTransform(refDims,repDims)
if (repDims(1)/repDims(2) > 1) && (refDims(2)/refDims(2) > 1) % When the ratio of length to width is the same
scaleTransform=affine2d([1/(repDims(1)/refDims(1)) 0 0 ; 0 1/(repDims(2)/refDims(2)) 0 ;0 0 1]);
else % When the ratio of length to width is different
scaleTransform=affine2d([0 1/(repDims(2)/refDims(1)) 0 ; 1/(repDims(1)/refDims(2)) 0 0 ;0 0 1]);
end
end
Dmytro
Dmytro el 19 de Abr. de 2023
I think You have at least one mistake in the condition because Your (refDims(2)/refDims(2) > 1) always is false and You go to else case

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by