本文目录
MATLAB interp2和imresize函数的区别是什么
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’);
matlab imresize
从出错信息上看imresize的第一个参数A被赋值为空矩阵了,也就是bw1为空。
往回推是find(bw==0)返回的是空矩阵,也就是说bw的值都是1。
而bw是由bw=im2bw(x,0.5)赋值的,
这个函数的作用是把彩色或者灰度级的图像变为黑白图像。
0表示黑色,1表示白色。
第二个参数的0.5表示从0到1的灰度级的什么地方划分开,
灰度级大于0.5的就转变为白色1,小于0.5的就变为黑色0。
当然,这个参数不一定取0.5,可以取0到1的任意值。
现在find(bw==0)返回空,就是说bw的值都是1,
那么说明原来的图像x各点在灰度级上更接近于白色,没有比0.5小的。
或者说图像都是亮色调的,没有暗色调的。
所以看看是不是你的bmp图像是亮颜色的,换个颜色对比比较大的图像试试。
为了避免再出错,最好加上对find(bw==0)返回空矩阵情况的容错处理。