0

我正在尝试运行此代码以扭曲图像,但我无法在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)

注意:我安装了图像处理工具包。这是源代码

如何正确运行此代码?

4

2 回答 2

1

很久以前imshow可能有一个额外的选项可以truesize作为字符串参数调用。它不再具有那种语法。而是单独调用,truesize。即替换

imshow(I, 'truesize'); 

imshow(I);
truesize;

或者您可以简单地删除参数并手动将大小调整为您需要的大小。

于 2019-03-22T20:20:04.177 回答
0

实际上,这些行必须更改才能正确运行代码:

captureWarpPoints.m中的第 17行必须更改为:

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

captureWarpPoints.m中的第 36行必须更改为:

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

您所写的captureWarpPoints.m中的第 133 行必须更改为:

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

warpImage.m中的第 26行必须更改为:

displaceY = griddata(x, y, zy, xi', yi);
于 2019-03-23T12:49:47.333 回答