MATLAB interp2和imresize函数的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB interp2和imresize函数的区别是啥?相关的知识,希望对你有一定的参考价值。

需要将二维矩阵插值到指定的行列数。最初使用的是imresize函数,但是后期结果可能有一点问题。想请问下这两个函数插值有区别吗(插值的方法都设置为最近邻)?如果要使用interp2函数来插值到指定的行列数,有没有大神做过类似工作?感激不尽

interp2函数——用于meshgrid 格式的二维网格数据的插值

imresize函数——用于用于图像大小调整插值(双三次方插值)。

可以说,interp2函数和imresize函数应用方向不完全一致。

interp2函数主要应用于优化灰度图像。使用例子:

load clown  %将某些图像数据加载到工作区中。

V = single(X(1:124,75:225)); %隔离图像的一个小区域并将其转换为单精度。

figure(1)  %显示原图像。

imagesc(V);

colormap gray

axis image

axis off

title('Original Image');

Vq = interp2(V,5); %将每个维度上网格点之间的间隔重复分割优化五次来增加插入值。

figure(2) %显示优化图像

imagesc(Vq);

colormap gray

axis image

axis off

title('Linear Interpolation');

参考技术A

我帮你写了一个程序,你试一下:

A = imread('rice.png');

B = imresize(A, [512 512]);

figure,imshow(A)

figure,imshow(B)

运行结果如下:

matlab函数之imresize()

B = imresize(A,scale)

B = imresize(A,scale) 返回图像 B,它是将 A 的长宽大小缩放 scale 倍之后的图像。输入图像 A 可以是灰度、RGB 或二值图像。如果 A 有两个以上维度,则 imresize 只调整前两个维度的大小。如果 scale 在 [0, 1] 范围内,则 B 比 A 小。如果 scale 大于 1,则 B 比 A 大。默认情况下,imresize 使用双三次插值。

举例:

I = imread(‘ngc6543a.jpg‘);
%将图像的长宽缩小二分之一。
J = imresize(I, 0.5);
%显示原始图像和调整大小后的图像。
figure(2); imshow(I);
figure(3); imshow(J);

技术图片

 

 

来源:https://ww2.mathworks.cn/help/matlab/ref/imresize.html?searchHighlight=imresize&s_tid=doc_srchtitle

以上是关于MATLAB interp2和imresize函数的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中实现 Matlab Interp2d

imresize() 函数——matlab

matlab函数之imresize()

关于matlab imresize函数 里面都是插值法

matlab中使用imresize函数时出错

matlab imresize 改变图像大小