1
$\begingroup$

I am trying to process hundreds of images in the same way and export them automatically one by one. Right now, I only have the image processing code for one image, and I want to learn what is the most efficient way to repeat the procedure for the rest of the hundreds of images.

My code for one image is:

Export["C:\\Users\\ProcessedImage1.tiff",ColorNegate[ImageFilter[Max,ColorSeparate[ImageApply[{Sin[Pi#*4],Sin[Pi#],Sin[Pi#*3]}&,Import["C:\\Users\\Image1.tiff"]],"L"],1]]//Colorize] 

Right now, I can import several the images (very large file size) to a Table and export them one by one again using Table. However, it is very slow. How do I import one image, process it, export it then delete it from Mathematica's memory and move on to the next image? I am thinking For loop, Table, or Map, but I am not familiar with the language yet. In other words, how do I import "ImageX.tiff", where X is the number in my file name, then process it and export to "ProcessedImageX.tiff"?

$\endgroup$
  • $\begingroup$ Have you read the documentation on Table and TemplateApply? In particular I think you'll want to use Table[expr,{i,number_of_images}] and TemplateApply["C:\\...Image``",i] inside expr. $\endgroup$ – b3m2a1 Mar 17 '17 at 4:23
  • $\begingroup$ Have you tried ImageFileApply and ImageFileFilter? $\endgroup$ – Alexey Popkov Mar 17 '17 at 7:03
  • $\begingroup$ Also, Parallelize can be helpful here. $\endgroup$ – Alexey Popkov Mar 17 '17 at 7:07
  • $\begingroup$ I usually use some variant of Monitor[Do[processImage[file], {file, FileNames[folder]}], file]. Where processImage is the function that does the actual processing. The Monitor is just so I can see some progress $\endgroup$ – Niki Estner Mar 17 '17 at 7:45
  • $\begingroup$ Hi nikie, when I use Monitor[Do[processImage[file], {file, FileNames[folder]}], file], according to your suggestion, the error message is "C:\.." not an array or an image. So instead of using FileNames[folder], I tried using Import[folder] to import my images. However, my processImage function does not work even though I got the images to show.. I just want to use a simple StandardDeviationFilter to filter all the images in this folder. Any other suggestions? Thank you! $\endgroup$ – Chelsea Mar 23 '17 at 21:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.