Matlab 使用inf作为填充值的imtransform
我有一个代码,它通过X轴上的偏移来执行图像的平移。 我想当图像超出边界时,强度值将为inf 所以我预先制定了这样的代码Matlab 使用inf作为填充值的imtransform,matlab,image-processing,Matlab,Image Processing,我有一个代码,它通过X轴上的偏移来执行图像的平移。 我想当图像超出边界时,强度值将为inf 所以我预先制定了这样的代码 t = maketform('affine',[1 0 ; 0 1; -offset 0]); origbounds = [1 1; H W]; Im2 = imtransform(Img,t,'XData',origbounds(:,2)','YData',origbounds(:,1)', 'FillValues', inf); 我在Im2的第一排都是NaN 我只想当偏移
t = maketform('affine',[1 0 ; 0 1; -offset 0]);
origbounds = [1 1; H W];
Im2 = imtransform(Img,t,'XData',origbounds(:,2)','YData',origbounds(:,1)', 'FillValues', inf);
我在Im2的第一排都是NaN
我只想当偏移量大于Img的宽度时,用inf填充最后一列
正确的方法是什么?我想你看到的是一件艺术品。尝试使用“最近”邻居插值,而不是默认的“双线性”
例如:
interpMethod = 'nearest'; %# 'bicubic', 'bilinear', 'nearest'
fillval = Inf; %# Inf, Nan, 0.9
offset = 20;
img = im2double(imread('cameraman.tif'));
t = eye(3,2); t(3,1) = -offset;
img2 = imtransform(img, maketform('affine',t), interpMethod, ...
'FillValues',fillval, 'XData',[1 size(img,2)], 'YData',[1 size(img,1)]);
subplot(211), imshow(img)
subplot(212), imshow(img2)