我有一个尺寸为[491,710,710]的图像阵列。例如。我想从该图像中删除第25和30个图像。我怎样才能做到这一点 ?
restore, 'C:\Users\User1\Desktop\TEZ\SUNSPOT_3_Crop\norm_Leke3.sav'
dim = SIZE(im8)
nfls = dim[1]
new_img = dblarr(nfls-2,710,710)
for i =0, nfls do begin
IF i EQ 25 THEN begin
i++
ENDIF
IF i EQ 30 THEN begin
i++
new_img[i,*,*] = bytscl(im8[i,*,*])
endfor
end
我是IDL的新手。我认为的代码是这样的。是的,删除图像,但是它变黑并且尺寸仍然相同([491,710,710])。如果删除第25张和第30张图像,则尺寸应为[399,710,710]。我该如何解决?
尝试使用这样的索引:
; img is 401 by 710 by 710
mask = bytarr(401) + 1B
mask[[25, 30]] = 0B
keep_indices = where(mask, n_keep)
if (n_keep gt 0L) then begin
new_img = img[keep_indices, *, *]
endif else new_img = !null