Scale bar macro problems

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Scale bar macro problems

Nick Holway
Hi,

I'm trying to write a macro which puts a scale bar on all the images in a
directory. I've borrowed bits from the Bacth Convert macro.

run("Set Scale...", "distance=1 known=1 pixel=1 unit=um");
dir1 = "C:\\imagejdev\\original\\";
dir2 = "C:\\imagejdev\\output\\";
  list = getFileList(dir1);
  setBatchMode(true);
  for (i=0; i<list.length; i++) {
  showProgress(i+1, list.length);
  open(dir1+list[i]);
run("Scale Bar...", "width=100 height=5 font=18 color=Black background=None
location=[Lower Right] bold");
  saveAs("TIFF", dir2+list[i]);
  close();
  }

I have a couple of problems with this:

* If there is no image open, then a dialog warns you of this

* If the macro opens a JPEG then the scrip works properly, if it opens a tif
then the scale line extends from the LHS of the image to the RHS of where it
should end

I'm using the v1.41 of the MBF build on Windows XP SP2 and I also tried
Imagej 1.41 with the MBF plugins on Centos 5.2. I had the same problems on
both platforms. FWIW the files were originally created under Windows.

Does anyone know how to get around these problems?

Thanks

Nick
Reply | Threaded
Open this post in threaded view
|

Re: Scale bar macro problems

Michael Schmid
Hi Nick,

in your macro, the "Set Scale..." command is called before
opening the image, so it will create an error if there is no
open image at that time.
You should call it each time after you open an image.

Tiff images have the image scale stored as tags with the image,
which might cause a scale different from that of the jpegs.
Again, this problem should be none if you call "Set Scale..."
after "open".

Michael
________________________________________________________________
Michael Schmid                    email: [hidden email]
Institut fuer Allgemeine Physik, Technische Universitaet Wien
Wiedner Hauptstr. 8-10/134, A 1040 Wien, Austria
Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499
________________________________________________________________

On 4 Sep 2008, at 16:04, Nick Holway wrote:

> Hi,
>
> I'm trying to write a macro which puts a scale bar on all the  
> images in a
> directory. I've borrowed bits from the Bacth Convert macro.
>
> run("Set Scale...", "distance=1 known=1 pixel=1 unit=um");
> dir1 = "C:\\imagejdev\\original\\";
> dir2 = "C:\\imagejdev\\output\\";
>   list = getFileList(dir1);
>   setBatchMode(true);
>   for (i=0; i<list.length; i++) {
>   showProgress(i+1, list.length);
>   open(dir1+list[i]);
> run("Scale Bar...", "width=100 height=5 font=18 color=Black  
> background=None
> location=[Lower Right] bold");
>   saveAs("TIFF", dir2+list[i]);
>   close();
>   }
>
> I have a couple of problems with this:
>
> * If there is no image open, then a dialog warns you of this
>
> * If the macro opens a JPEG then the scrip works properly, if it  
> opens a tif
> then the scale line extends from the LHS of the image to the RHS of  
> where it
> should end
>
> I'm using the v1.41 of the MBF build on Windows XP SP2 and I also  
> tried
> Imagej 1.41 with the MBF plugins on Centos 5.2. I had the same  
> problems on
> both platforms. FWIW the files were originally created under Windows.
>
> Does anyone know how to get around these problems?
>
> Thanks
>
> Nick
Reply | Threaded
Open this post in threaded view
|

Re: Scale bar macro problems

Nick Holway
Hi,

Thanks for the response.I followed your suggestion and it worked to solve
the image bar width problem. I didn't realise that it was called for each
image and had kept outside of the loop to try and make the script more
efficient.

I noticed when running the script that the "no images open" message actually
occured when it tried to process the thumbs.db file. The fact I had no
images open was a red herring. I'll alter my script so it'll only open
images.

Nick

2008/9/4 Michael Schmid <[hidden email]>

> Hi Nick,
>
> in your macro, the "Set Scale..." command is called before
> opening the image, so it will create an error if there is no
> open image at that time.
> You should call it each time after you open an image.
>
> Tiff images have the image scale stored as tags with the image,
> which might cause a scale different from that of the jpegs.
> Again, this problem should be none if you call "Set Scale..."
> after "open".
>
> Michael
> ________________________________________________________________
> Michael Schmid                    email: [hidden email]
> Institut fuer Allgemeine Physik, Technische Universitaet Wien
> Wiedner Hauptstr. 8-10/134, A 1040 Wien, Austria
> Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499
> ________________________________________________________________
>
> On 4 Sep 2008, at 16:04, Nick Holway wrote:
>
>  Hi,
>>
>> I'm trying to write a macro which puts a scale bar on all the images in a
>> directory. I've borrowed bits from the Bacth Convert macro.
>>
>> run("Set Scale...", "distance=1 known=1 pixel=1 unit=um");
>> dir1 = "C:\\imagejdev\\original\\";
>> dir2 = "C:\\imagejdev\\output\\";
>>  list = getFileList(dir1);
>>  setBatchMode(true);
>>  for (i=0; i<list.length; i++) {
>>  showProgress(i+1, list.length);
>>  open(dir1+list[i]);
>> run("Scale Bar...", "width=100 height=5 font=18 color=Black
>> background=None
>> location=[Lower Right] bold");
>>  saveAs("TIFF", dir2+list[i]);
>>  close();
>>  }
>>
>> I have a couple of problems with this:
>>
>> * If there is no image open, then a dialog warns you of this
>>
>> * If the macro opens a JPEG then the scrip works properly, if it opens a
>> tif
>> then the scale line extends from the LHS of the image to the RHS of where
>> it
>> should end
>>
>> I'm using the v1.41 of the MBF build on Windows XP SP2 and I also tried
>> Imagej 1.41 with the MBF plugins on Centos 5.2. I had the same problems on
>> both platforms. FWIW the files were originally created under Windows.
>>
>> Does anyone know how to get around these problems?
>>
>> Thanks
>>
>> Nick
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Scale bar macro problems

Ben Tupper
Hi,

On Sep 4, 2008, at 11:01 AM, Nick Holway wrote:

> Hi,
>
> Thanks for the response.I followed your suggestion and it worked to  
> solve
> the image bar width problem. I didn't realise that it was called  
> for each
> image and had kept outside of the loop to try and make the script more
> efficient.
>

You can set the scale to be global so it applies to all images...

run("Set Scale...", "distance=0 known=1 pixel=1 unit=cm global");


That should behave as you desire - set it once and keep it out of the  
loop.

Cheers,
Ben




> I noticed when running the script that the "no images open" message  
> actually
> occured when it tried to process the thumbs.db file. The fact I had no
> images open was a red herring. I'll alter my script so it'll only open
> images.
>
> Nick
>
> 2008/9/4 Michael Schmid <[hidden email]>
>
>> Hi Nick,
>>
>> in your macro, the "Set Scale..." command is called before
>> opening the image, so it will create an error if there is no
>> open image at that time.
>> You should call it each time after you open an image.
>>
>> Tiff images have the image scale stored as tags with the image,
>> which might cause a scale different from that of the jpegs.
>> Again, this problem should be none if you call "Set Scale..."
>> after "open".
>>
>> Michael
>> ________________________________________________________________
>> Michael Schmid                    email: [hidden email]
>> Institut fuer Allgemeine Physik, Technische Universitaet Wien
>> Wiedner Hauptstr. 8-10/134, A 1040 Wien, Austria
>> Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499
>> ________________________________________________________________
>>
>> On 4 Sep 2008, at 16:04, Nick Holway wrote:
>>
>>  Hi,
>>>
>>> I'm trying to write a macro which puts a scale bar on all the  
>>> images in a
>>> directory. I've borrowed bits from the Bacth Convert macro.
>>>
>>> run("Set Scale...", "distance=1 known=1 pixel=1 unit=um");
>>> dir1 = "C:\\imagejdev\\original\\";
>>> dir2 = "C:\\imagejdev\\output\\";
>>>  list = getFileList(dir1);
>>>  setBatchMode(true);
>>>  for (i=0; i<list.length; i++) {
>>>  showProgress(i+1, list.length);
>>>  open(dir1+list[i]);
>>> run("Scale Bar...", "width=100 height=5 font=18 color=Black
>>> background=None
>>> location=[Lower Right] bold");
>>>  saveAs("TIFF", dir2+list[i]);
>>>  close();
>>>  }
>>>
>>> I have a couple of problems with this:
>>>
>>> * If there is no image open, then a dialog warns you of this
>>>
>>> * If the macro opens a JPEG then the scrip works properly, if it  
>>> opens a
>>> tif
>>> then the scale line extends from the LHS of the image to the RHS  
>>> of where
>>> it
>>> should end
>>>
>>> I'm using the v1.41 of the MBF build on Windows XP SP2 and I also  
>>> tried
>>> Imagej 1.41 with the MBF plugins on Centos 5.2. I had the same  
>>> problems on
>>> both platforms. FWIW the files were originally created under  
>>> Windows.
>>>
>>> Does anyone know how to get around these problems?
>>>
>>> Thanks
>>>
>>> Nick
>>>
>>

Ben Tupper
[hidden email]

I GoodSearch for Ashwood Waldorf School.

Raise money for your favorite charity or school just by searching the  
Internet with GoodSearch - www.goodsearch.com - powered by Yahoo!