我在这个论坛上看到了一些类似的问题,但我没有找到解决这个问题的真正方法。
我有以下 matlab 代码,其中我使用非常大的图像(182MP):
%step 1: read the image
image=single(imread('image.tif'));
%step 2: read the image segmentation
regions=imread('image_segmentation.ppm');
%step 3: count the number of segments
number_of_regions=numel(unique(regions));
%step 4: regions label
regions_label=unique(regions);
for i=1:number_of_regions
%pick the pixel indexes of the i'th region
[x_region,y_region]=find(regions==label_regions(i));
%the problem starts here
ndvi_region=(image(x_region,y_region,1)-image(x_region,y_region,3))./(imagem(x_region,y_region,1)+image(x_region,y_region,3));
每次我使用特定区域运行代码时,matlab 都会返回错误:超出了程序允许的最大变量大小。
我在我学院的集群中运行具有 48GB RAM 的代码。问题仅在区域编号 43 及以下开始。其他地区运行正常。
我有一个聪明的方法来运行这段代码吗?