Cropping a tif stack
이전 댓글 표시
Hey everyone,
I need to crop a stack of single tif-files. For example, I have a stack of 5000 512x512 tif images where I only need the regions from x=159 to 295 and y=279 to 389. Is there a way to do this fast in MATLAB? I have written the code below, using parfor, but it still takes a long time, and I have the impression that it could be done better...
Thanks!
im=imread('filename.tif');
filename='filename.tif';
info=imfinfo(filename);
num_images=numel(info);
parfor k = 1:num_images
A=imread(filename,k,'Info',info);
Acrop=imcrop(A,[5 10 50 75]);
imwrite(Acrop,'stack_crop.tif','writemode','append');
end
댓글 수: 1
Huan Zheng
2020년 9월 19일
Hi, I met the same issue now, do you have any solution after 3 years?
답변 (1개)
Walter Roberson
2017년 1월 23일
1 개 추천
You can do slightly better by using array indexing instead of imcrop, since you already know the section you want to extract.
However, your output is not well defined. parfor does not execute the loop in-order, so the order of images is going to be random in 'writemode' 'append'
댓글 수: 2
mtmtmt
2017년 1월 23일
Walter Roberson
2017년 1월 23일
Possibly switching to using the Tiff class might help. No promises.
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!