Ошибка использования images.internal.imageDisplayParsePVPairs в Matlab - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь запустить этот код , чтобы деформировать изображение, но я не могу правильно запустить его на Matlab R2018b и получаю следующую ошибку:

>> captureWarpPoints('man11.jpg');
Error using images.internal.imageDisplayParsePVPairs (line 71)
The parameter, notruesize, is not recognized by imageDisplayParsePVPairs

Error in images.internal.imageDisplayParseInputs (line 69)
[common_args,specific_args] = images.internal.imageDisplayParsePVPairs(varargin{:});

Error in imshow (line 245)
    images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});

Error in captureWarpPoints>updateRef (line 133)
        refImgHandle = imshow(modRefImage, 'notruesize');

Error in captureWarpPoints (line 29)
updateRef(1, refImage, refPoints)

Примечание. У меня установлено Toolkit для обработки изображений . Вот исходный код .

Как мне правильно запустить этот код?

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Давным-давно imshow, вероятно, имел дополнительную опцию для вызова truesize в качестве строкового аргумента.У него больше нет этого синтаксиса.Вместо этого звоните, trueesize отдельно.т.е. замените

imshow(I, 'truesize'); 

на

imshow(I);
truesize;

Или вы можете просто удалить аргумент и вручную настроить размер в соответствии с тем, что вам нужно.

0 голосов
/ 23 марта 2019

На самом деле, эти строки должны измениться для правильного выполнения кода:

Строка 17 в captureWarpPoints.m должна измениться на:

iptsetpref('ImshowBorder', 'tight'); % 'iptsetpref' must be lowercase not uppercase

Строка36 в captureWarpPoints.m должно измениться на:

capImgHandle = imshow(capImage, 'InitialMagnification', 'fit');

Строка 133 в captureWarpPoints.m , как вы написали, должно измениться на:

refImgHandle = imshow(modRefImage, 'InitialMagnification', 'fit');

Строка 26 в warpImage.m должна измениться на:

displaceY = griddata(x, y, zy, xi', yi);
...