考虑以下 MATLAB 代码:
请注意,
有没有办法解决MATLAB的这个问题,并获得正确的双线性插值?(除了手动插入额外的点,如果放大到足够远仍无法解决问题。)
C = [ 0 0 0 0 0
0 1 2 1 0
0 2 4 2 0
0 1 2 1 0
0 0 0 0 0 ];
pcolor( C );
shading interp;
axis square
请注意,
C
在90度旋转下不变。还要注意来自pcolor
帮助文档的以下句子:
然而,绘制的图像如下: 请注意,图像在90度旋转下不是不变的(例如考虑四个角)。除非我严重误解双线性插值,否则这一点一定是错误的。MATLAB似乎在三角形上进行插值,这与双线性插值不同。使用shading interp,每个单元格通过其四个顶点处颜色的双线性插值进行着色,使用C的所有元素。
有没有办法解决MATLAB的这个问题,并获得正确的双线性插值?(除了手动插入额外的点,如果放大到足够远仍无法解决问题。)
surf(C); shading('interp'); view(2);
完全相同的着色。 - jodag