Login  Register

Re: naive question involving a macro to apply misc. (contrast, scale bar, convert image) to multiple files

Posted by William Jeffrey Triffo on Feb 11, 2008; 5:21pm
URL: http://imagej.273.s1.nabble.com/naive-question-involving-a-macro-to-apply-misc-contrast-scale-bar-convert-image-to-multiple-files-tp3697222p3697224.html

thanks Michael,

I now see that for many of the images, the units were different - the
"0.1" is fine when my units are microns (makes a 100nm bar), but for
higher-mag images the units switch to nanometers, so "0.1" at that point
means "1 Angstrom", which is sub-pixel at that point.

could someone send me the proper commands to scan the units in "Set
Scale" within the macro, so that I can use an "if/then" conditional to
set the width right for each image (100 vs. 0.1). When I look at the
output of the macro recorder after launching the "Set Scale" dialog, it
just says "run("Set Scale...");" (which makes sense). maybe what I am
really asking is how to look at the units field in the image header (?)

best,

-Jeff


Michael Schmid wrote:

> Hi Jeff,
>
> - Concerning Enhance Contrast:
>
> This only modifies the display, not the image data, so it will
> not be stored (except tiff and zip, where the display settings
> are stored with the image).
> Use "Apply LUT" to modify the image.
>
> - Concerning the Scale Bar:
>
> I have no problem with this, but it depends on the image
> calibration. It the scale bar has a width of 0.1 it won't show
> up in images that have a scale of e.g. 1 um/pixel.
> To see whether you have a scale bar of almost zero width, you
> can remove the "hide" (hide text) command and look whether you
> see the label.
>
> Michael
> ________________________________________________________________
>
> On 11 Feb 2008, at 09:18, William Jeffrey Triffo wrote:
>
>> hello,
>>
>> I am trying to write a simple macro file to open a bunch of images,
>> 'auto set' the contrast, add a scalebar, and then save the image as a
>> jpeg. In the text below, I have edited an example I found for
>> converting BioRad to TIFF (can't remember where), that I appended
>> commands to based on the output of the "record macro" function in
>> ImageJ. To the author of that macro, thanks.
>>
>> regarding the scalebar, I am using the .DM3 reader plug-in which
>> (nicely) sets the scale for me for each image using the .DM3 header.
>>
>> The macro appears to convert all the images in a directory to .jpg,
>> but the scalebar (and presumably the 'auto contrast' line) only
>> appear to effect the last file in the series. As you can see, I have
>> done some very crude debugging using 'wait', to see if the commands
>> were running over each other (I would not know).
>>
>> at any rate, any help would be appreciated; I tried searching the
>> archive for "scale bar batch", etc, but did not find a post dealing
>> with this (although it seems like a frequent operation to me, so I
>> may have mis-used the search function on the listserv homepage).
>>
>> thanks much,
>>
>> -Jeff
>>
>> //
>> // the macro also assumes that you have the biorad plugin install
>> // (Biorad_Reader.class) as well as the file handler for other
>> // file types (HandleExtraFileTypes.class)
>> //
>> // gma - 28 mar 05
>> //
>>
>>  macro "Batch Convert Image to JPEG with Contrast and Scalebar"
>> {convert("jpeg");}
>>
>>  function convert(format) {
>>      requires("1.33s");
>>      dir1 = getDirectory("Choose Source Directory ");
>>      dir2 = getDirectory("Choose Destination Directory ");
>>      list = getFileList(dir1);
>>      setBatchMode(true);
>>      for (i=0; i<list.length; i++) {
>>          showProgress(i+1, list.length);
>>          open(dir1+list[i]);
>>          wait(1000);
>>     //  run("Enhance Contrast", "saturated=0.5");
>>       wait(1000);
>>       run("Scale Bar...", "width=0.10 height=12 font=42 color=White
>> background=None location=[Lower Right] hide");
>>       wait(1000);
>>          saveAs(format, dir2+list[i]);
>>          close();
>>      }
>>  }
>