【问题标题】:Resample thousands of images in Matlab? [duplicate]在 Matlab 中重新采样数千张图像? [复制]
【发布时间】:2017-11-03 14:42:08
【问题描述】:

我有一个大数组 MxNxP 大小,其中 M 和 N 是每个图像的宽度和长度,P 是 os 图像的数量。现在,这表示分辨率为 0.1 度的卫星图像。是否可以在 Matlab 中将这些图像重新采样到 0.25 或 0.5 度的分辨率?

我检查了重采样功能,但我需要更改像素大小,而不是采样率。最后,我仍然想要 P 数量的图像。

感谢您的帮助。

附:我不必调整大小。

【问题讨论】:

  • 这不是重复的您非常友好的信息

标签: matlab image-processing satellite-image


【解决方案1】:

您可以跳过几行和几列并将输出转换为矩阵吗?

A = rand(100,100) ;
A_reduced = A(1:2:10,1:2:10) ;

你可以使用 interp2,如果你想要上面提到的精确分辨率。

I = imread('peppers.png') ;
[nx,ny,t] = size(I) ;

x = 1:ny ;
y = 1:nx ;
[X,Y] = meshgrid(x,y) ;
%%
dx = 2 ; dy = 2 ;
[Xi,Yi] = meshgrid(1:dx:ny,1:dy:nx) ;

Zi = zeros(size(Xi,1),size(Xi,2),t) ;
for i = 1:t
    Zi(:,:,i) = interp2(X,Y,double(I(:,:,i)),Xi,Yi) ;
end
Zi = uint8(Zi) ;

【讨论】:

  • 不,抱歉。这是我做不到的。不能承受数据丢失。此外,像素大小不会因此而改变。
  • interp2怎么样?
  • 是的,我正在尝试。感谢您的建议。
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多