Quantcast

How to develop a micro-manager plugin

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

How to develop a micro-manager plugin

luchangli1993

Dear all,

I'm a new newcomer for micro-manager plugin programing. Currently I want to develop a plugin for accessing images in live and multi-dimensional acquisition mode and then processing them by GPU.

I’m very confused about how to begin my programing and I can’t find enough document describing how to use the CMMCore and Studio. I can only read and analyze existing plugin codes and try to do some modifications. Do you have some suggestions?

 

Thank you very much and best wishes.

 
2017-01-20

Luchang Li
Doctorial student
Britton Chance Center for Biomedical Photonics
Wuhan National Laboratory for Optoelectronics (WNLO)
Huazhong University of Science and Technology
1037 Luoyu Road WNLO G201, Wuhan 430074, P. R. China

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

Kyle Douglass

Dear Luchang,

From: luchangli1993 <[hidden email]>
Sent: Friday, January 20, 2017 4:05 AM
 

I’m very confused about how to begin my programing and I can’t find enough document describing how to use the CMMCore and Studio. I can only read and analyze existing plugin codes and try to do some modifications. Do you have some suggestions?

 

Modifying an example bean shell script that already does something close to what you want is, in my opinion, the best way to get started. If you're using Micro-Manager 2.0, you may find the example scripts here: https://github.com/micro-manager/micro-manager/tree/mm2/scripts

You will also probably want to understand how Micro-Manager uses a so-called circular buffer to temporarily store images from the camera before processing or saving them. In particular, MMCore methods such as getLastImage() and popNextImage() may be used to retrieve image data from the buffer. After getting the image data, you can send it to your own GPU code for custom processing.

Cheers,
Kyle

Dr. Kyle M. Douglass

Post-doctoral Researcher
EPFL - The Laboratory of Experimental Biophysics
http://leb.epfl.ch/
http://kmdouglass.github.io

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

Nico Stuurman-2
In reply to this post by luchangli1993
    Hi Luchang,


>
>     I'm a new newcomer for micro-manager plugin programing. Currently
>     I want to develop a plugin for accessing images in live and
>     multi-dimensional acquisition mode and then processing them by GPU.
>
>     I’m very confused about how to begin my programing and I can’t
>     find enough document describing how to use the CMMCore and Studio.
>     I can only read and analyze existing plugin codes and try to do
>     some modifications. Do you have some suggestions?

    In addition to Kyle's excellent suggestions, have a look at the new
    Processing pipeline in Micro-Manager 2.0. These get images (either
    through the snap/live mode or through an acquisition) before they
    are being stored/displayed, so would be ideal to use for GPU
    processing.  All you would need to do is to extend the Processor
    interface
    (https://github.com/micro-manager/micro-manager/blob/mm2/mmstudio/src/main/java/org/micromanager/data/Processor.java).The
    ImageFlipper plugin is an example of such an implementation:
    https://github.com/micro-manager/micro-manager/tree/mm2/plugins/ImageFlipper/src/main/java/org/micromanager/imageflipper

    Best,

    Nico



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

luchangli1993
Thanks Kyle and Nico, I will try my best to understand and program it.
 
2017-01-21
Luchang Li
Doctorial student
Britton Chance Center for Biomedical Photonics
Wuhan National Laboratory for Optoelectronics (WNLO)
Huazhong University of Science and Technology
1037 Luoyu Road WNLO G201, Wuhan 430074, P. R. China

发件人:Nico Stuurman <[hidden email]>
发送时间:2017-01-21 05:56
主题:Re: [micro-manager-general] How to develop a micro-manager plugin
收件人:"Micro-Manager General"<[hidden email]>
抄送:
 
    Hi Luchang, 
 
 
>     I'm a new newcomer for micro-manager plugin programing. Currently 
>     I want to develop a plugin for accessing images in live and 
>     multi-dimensional acquisition mode and then processing them by GPU. 
>     I’m very confused about how to begin my programing and I can’t 
>     find enough document describing how to use the CMMCore and Studio. 
>     I can only read and analyze existing plugin codes and try to do 
>     some modifications. Do you have some suggestions? 
 
    In addition to Kyle's excellent suggestions, have a look at the new 
    Processing pipeline in Micro-Manager 2.0. These get images (either 
    through the snap/live mode or through an acquisition) before they 
    are being stored/displayed, so would be ideal to use for GPU 
    processing.  All you would need to do is to extend the Processor 
    interface 
    (https://github.com/micro-manager/micro-manager/blob/mm2/mmstudio/src/main/java/org/micromanager/data/Processor.java).The 
    ImageFlipper plugin is an example of such an implementation: 
    https://github.com/micro-manager/micro-manager/tree/mm2/plugins/ImageFlipper/src/main/java/org/micromanager/imageflipper 
 
    Best, 
 
    Nico 
 
 
 
------------------------------------------------------------------------------ 
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot 
_______________________________________________ 
micro-manager-general mailing list 
https://lists.sourceforge.net/lists/listinfo/micro-manager-general 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

luchangli1993
In reply to this post by Nico Stuurman-2
Dear all,
I have analysed the code of ImageFlipper and I have a question.
In the file FlipperPlugin.java, about the override method ProcessorConfigurator createConfigurator(PropertyMap settings), the original method in interface ProcessorPlugin does not have a input parameter PropertyMap settings, so in netbeans I can't finish compilation. Do you know how to solve this problem?
 
Thank you very much and best wishes.
 
 
2017-01-21
Luchang Li
Doctorial student
Britton Chance Center for Biomedical Photonics
Wuhan National Laboratory for Optoelectronics (WNLO)
Huazhong University of Science and Technology
1037 Luoyu Road WNLO G201, Wuhan 430074, P. R. China

发件人:Nico Stuurman <[hidden email]>
发送时间:2017-01-21 05:56
主题:Re: [micro-manager-general] How to develop a micro-manager plugin
收件人:"Micro-Manager General"<[hidden email]>
抄送:
 
    Hi Luchang, 
 
 
>     I'm a new newcomer for micro-manager plugin programing. Currently 
>     I want to develop a plugin for accessing images in live and 
>     multi-dimensional acquisition mode and then processing them by GPU. 
>     I’m very confused about how to begin my programing and I can’t 
>     find enough document describing how to use the CMMCore and Studio. 
>     I can only read and analyze existing plugin codes and try to do 
>     some modifications. Do you have some suggestions? 
 
    In addition to Kyle's excellent suggestions, have a look at the new 
    Processing pipeline in Micro-Manager 2.0. These get images (either 
    through the snap/live mode or through an acquisition) before they 
    are being stored/displayed, so would be ideal to use for GPU 
    processing.  All you would need to do is to extend the Processor 
    interface 
    (https://github.com/micro-manager/micro-manager/blob/mm2/mmstudio/src/main/java/org/micromanager/data/Processor.java).The 
    ImageFlipper plugin is an example of such an implementation: 
    https://github.com/micro-manager/micro-manager/tree/mm2/plugins/ImageFlipper/src/main/java/org/micromanager/imageflipper 
 
    Best, 
 
    Nico 
 
 
 
------------------------------------------------------------------------------ 
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot 
_______________________________________________ 
micro-manager-general mailing list 
https://lists.sourceforge.net/lists/listinfo/micro-manager-general 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

Nico Stuurman-2

Hi Luchang,


I have analysed the code of ImageFlipper and I have a question.
In the file FlipperPlugin.java, about the override method ProcessorConfigurator createConfigurator(PropertyMap settings), the original method in interface ProcessorPlugin does not have a input parameter PropertyMap settings, so in netbeans I can't finish compilation. Do you know how to solve this problem?

Where/how did you get your source code?  The current version of ProcessorPlugin in the mm2 branch of the Micro-Manager github repository has a createConfigurator function that takes PropertyMap as a paramater (see: https://github.com/micro-manager/micro-manager/blob/mm2/mmstudio/src/main/java/org/micromanager/data/ProcessorPlugin.java).

Best,

Nico


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to develop a micro-manager plugin

luchangli1993
Thanks Nico, mabye I had wrongly inported micromanager of version 1.4.
 
2017-01-23
Wish you happy everyday!*^_^* 

Luchang Li 
Wuhan National Laboratory for Optoelectronics 
Huazhong University of Science and Technology 
 

发件人:Nico Stuurman <[hidden email]>
发送时间:2017-01-23 12:28
主题:Re: [micro-manager-general] How to develop a micro-manager plugin
收件人:"Micro-Manager General"<[hidden email]>
抄送:
 

Hi Luchang,


I have analysed the code of ImageFlipper and I have a question.
In the file FlipperPlugin.java, about the override method ProcessorConfigurator createConfigurator(PropertyMap settings), the original method in interface ProcessorPlugin does not have a input parameter PropertyMap settings, so in netbeans I can't finish compilation. Do you know how to solve this problem?

Where/how did you get your source code?  The current version of ProcessorPlugin in the mm2 branch of the Micro-Manager github repository has a createConfigurator function that takes PropertyMap as a paramater (see: https://github.com/micro-manager/micro-manager/blob/mm2/mmstudio/src/main/java/org/micromanager/data/ProcessorPlugin.java).

Best,

Nico


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Loading...