Subchapters:
|
The magic "where" functionSuppose you have an 512X512 image and you want to perform operations ONLY on the pixels, let's say, which have an intensity lower than 4 but non equal to 0. Let's have a look at the min and max of the image: IDL> print ,
min(image) , max(image) In a first step, let's create the table of the indices of the pixel on which we have to work. IDL> index =
where(image lt 4 and image ne 0) The index variable is a vector containing all the subscripts of the pixels matching the condition. You access them in the image and modify them. For example, let's give to all those elements the value 1: IDL> image[index] = 1 You can also just know how many pixels are over 14: IDL>
print,n_elements(image) You can also check if any element meet the criterion before applying a command: IDL> toto =
where(image gt 14,counts) You will see that the combination of where with the structure is a powerful way to extract sub_arrays verifying some criteria. |
IDL courses C. Morisset © 2004 IA/UNAM V 2.2 |