【发布时间】:2017-06-16 16:04:39
【问题描述】:
我看到有人对用于调整大小的自定义插值内核感兴趣 (MATLAB imresize with a custom interpolation kernel)。有没有人实现了 ImageMagick 中默认使用的参数化 Mitchell-Netravali 内核 [1] 并愿意分享 Matlab 代码?非常感谢!
[1]http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch24.html
// Mitchell Netravali Reconstruction Filter
// B = 0 C = 0 - Hermite B-Spline interpolator
// B = 1, C = 0 - cubic B-spline
// B = 0, C = 1/2 - Catmull-Rom spline
// B = 1/3, C = 1/3 - recommended
float MitchellNetravali(float x, float B, float C)
{
float ax = fabs(x);
if (ax < 1) {
return ((12 - 9 * B - 6 * C) * ax * ax * ax +
(-18 + 12 * B + 6 * C) * ax * ax + (6 - 2 * B)) / 6;
} else if ((ax >= 1) && (ax < 2)) {
return ((-B - 6 * C) * ax * ax * ax +
(6 * B + 30 * C) * ax * ax + (-12 * B - 48 * C) *
ax + (8 * B + 24 * C)) / 6;
} else {
return 0;
}
}
【问题讨论】:
标签: matlab image-processing resize interpolation