对 uint8 的 matlab 数组进行重采样



我在Matlab工作空间中添加了一个.JPG文件,Matlab将其加载为一个范围为0-255的300x300无符号整数的2D数组。我有兴趣分析这个矩阵中的一行。为此,我简单地使用提取了行

row = ones(300);
row = myMatrix(150, :);

然后,我意识到,为了将它与另一个长度为450个元素的数组进行比较,我需要将我的行向量扩展1.5倍,即将我的数组扩展到450个样本。为此,我尝试使用重采样函数如下:

row2 = resample(row, 3, 2);

但我收到一个错误,说重采样函数不支持第八单元类型的数据。

在我的情况下,有没有一种方法可以使用重采样来实现插值,或者你会推荐另一种方法?

我认为在阅读时必须将图像转换为双色:

imgOriginal = imread('FileName.jpg');
imgDbl = double( imgOriginal );
% if you need you may also convert the image to [0..1] range
% imgDbl = double( imgOriginal ) / double( intmax(class(imgOriginal)) );

对于调整大小,最好使用imresize:

imgResized = imresize( imgDbl , 1.5, 'bilinear' ); % use the method you need

因为对于插值方法,它将考虑所需的行之上/之下的行。然后您可以选择右侧的

row = imgResized(150,:);

最新更新