matlab实现最近邻内插
时间: 2023-11-02 07:56:12 浏览: 140
最近邻内插是一种简单但常用的图像插值方法。在 MATLAB 中,你可以使用以下代码实现最近邻内插:
```matlab
function outputImg = nearestNeighborInterpolation(inputImg, scaleFactor)
[inputHeight, inputWidth, ~] = size(inputImg);
outputHeight = round(scaleFactor * inputHeight);
outputWidth = round(scaleFactor * inputWidth);
outputImg = uint8(zeros(outputHeight, outputWidth, 3));
for i = 1:outputHeight
for j = 1:outputWidth
x = round((i-1)/scaleFactor + 1); y = round((j-1)/scaleFactor + 1);
outputImg(i,j,:) = inputImg(x,y,:);
end
end
end
```
在上面的代码中,`inputImg` 是输入图像,`scaleFactor` 是放缩因子。输出图像的尺寸通过乘以放缩因子得到,并使用 `round` 函数四舍五入为整数。然后,使用双重循环遍历输出图像的每个像素,通过计算最近邻像素的位置进行内插。
请注意,上述代码假设输入图像是 RGB 彩色图像,输出图像使用 `uint8` 数据类型,并初始化为全零图像。你可以根据实际需要进行修改和扩展。
阅读全文