Pendent Drop plugin (how to use)

imagej
pendent-drop

#1

The Pendent Drop plug-in allows for interactive or automated analysis of the profile of a pendent drop, in order to measure its surface tension, volume and surface. It is hosted on the Fiji site, and is described here


http://www.msc.univ-paris-diderot.fr/~daerr/misc/pendent_drop.html

This topic is the preferred place for questions and issues with this plugin.

In the following I dump questions I got through e-mail, so that they can be found by others along with the answers.


Publishing a Plugin (in a scientific journal)
#2

[received 2015-10-27]

Dear Dr Daerr,

First of all I’d like to thank you for making available the algorithm to calculate the surface tension from pending drops. I’ve been testing it on image files taken with our very old KSV CAM101 and get similar results. It seems though that the exact pixel size in my case is somewhere between the values I can enter: it should be e.g. 0.0123 but the program doesn’t allow the last decimal and will round it so that I never arrive at the exact value. E.g. water will be 66 or 75mN/m.

In your model file (water dsc1884.tif) I saw that the pixel size has been entered in the file AND has the extra decimal, giving an almost perfect result. Do you have a suggestion on how to add this extra precision in pixel to the fitting? Btw is the pixel size the only parameter I can reasonably change assuming the density difference for my materials is typically appr. the same, leading to the ‘density contrast times g’ of around 9.8?

Another question would be how to get physical values from the moment the plugin window is opened instead of having to adjust the numbers in pixels before running the fit but this apparently would be solved as soon as pixel size is directly included in the image file (as in your sample file).

Sorry for disturbing you with these questions but I’d really like to see our Krüss instrument being able to do incidental surface tension measurements in addition to contact angle. Krüss would charge €€€ for just the pending drop module which is too much for a small start-up company like ours… The instrument we got as a gift…

Kind regards,
[…]


#3

Thanks for your interest in the Pendant drop plugin. Let me try to answer your questions.

It seems though that the exact pixel size in my case is
somewhere between the values I can enter: it should be e.g. 0.0123 but
the program doesn’t allow the last decimal and will round it so that I
never arrive at the exact value. E.g. water will be 66 or 75mN/m.

Hum, I’ll have to check but only the display is rounded: you should be able to enter a more precise value and have it taken into account. I quickly checked and it seems to work (take test picture, clear the scale, draw ROI & call plugin, then enter 0.017 (micron/pix) as pixel size, change other parameters to make contour visible and adjust; then change pixel size to 0.018 and repeat fit; note both surface tensions (about 67 and 72 mN/m); now enter more precise value 0.01748; the result is now in between, around 70.9 mN/m, although the pixel size shown is rounded. That being said I will increase the number of significant digits shown to make it less annoying.

In your model file (water dsc1884.tif) I saw that the pixel size has
been entered in the file AND has the extra decimal, giving an almost
perfect result.

If you use ImageJ’s standard tools (line selection, Analyze->Set scale) to set the pixel scale before calling the plugin, then not only will the plugin take it into account, but the scale will also be saved along with the image.

Btw is the pixel size the only
parameter I can reasonably change assuming the density difference for my
materials is typically appr. the same, leading to the ‘density contrast
times g’ of around 9.8?

Yes, once the scale is known the capillary length is well determined. The surface tension is then just a square and a multiplication with the density contrast and the gravitational acceleration away.

Another question would be how to get physical values from the moment the
plugin window is opened instead of having to adjust the numbers in
pixels before running the fit but this apparently would be solved as
soon as pixel size is directly included in the image file (as in your
sample file).

It would indeed be convenient if the contour parameters were changed with every pixel size modification to yield the same (red) overlay drawing. Thanks for pointing this out, I’ll modify this in the next version.

Good luck with making this work!
Adrian

p.s.
If you do not mind, I would like to make this exchange public in a thread on the Pendant Drop Plugin which I will create on http://forum.image.sc/
so that others can benefit from the discussion and add their questions.
I can anonymize it of course. Is that ok with you ?


#4

Dear Adrian,

Thanks you very much for taking the trouble to answer my questions! It helped me understand the functioning of the plugin better which is something I always like as it makes me feel more comfortable with the results I get (I hate ‘black boxes’).
I’ll try to find a way to calibrate the pixel size as precisely as possible as this appears to be the key to a reliable reading. I can always compare results to the commercial instrument we have here (although it is ‘hidden’ in the clean room). Basically the surface tension readings from the plugin should be close to the fits from the commercial instrument…

Please feel free to publish the discussion. There is nothing to hide, on the contrary, the more knowledge is freely available the more time will be saved and the faster progress (at least in an ideal world:-))

kind regards,
[…]


#5

[received 2015-10-13]

[…] im desperatly looking for something to calculate the surface tension of a pendant drop. i’ve just found a tool for a sessil drop, but that’s not what i’m looking for. I just found your post from 2 years ago in which you told that you made a plugin for imageJ to evaluate a pendant drop. do you still have your plugin? is it possible that you send it to me?
Best regards […]

Hello,

Not only does the pendent drop plugin still exist, but it has greatly improved in usability over the last month, so you are quite lucky
It should be very easy to install in Fiji, if the instructions on the following page do not suffice send me your questions.

http://www.msc.univ-paris-diderot.fr/~daerr/misc/pendent_drop.html

Hello Adrian,

Thanks for your quick reply. I installed your plugin and tried to evaluate some of my drops. I still have some questions regarding the inputs that I have to do. After Defining my ROI, your plugin draws a perfect blue line around my drop. And after some ajustments the red line fits quite nice too. Now i do not know what i have to write in “pixel size” and “density contrast times g”? Is “Pixel size” (mm / pixel)? Is “Density Contrast time g” (density liquid - vapor density) * acceleration of gravity? What are the units of this two boxes? Maybe there is a step-bye-step instruction for your tool? So many questions :slight_smile:
Many thanks for your effort.

Best regards […]

Hello,

For pixel size I recommend actually setting the scale before you start the plugin, that way you benefit from ImageJ’s usual tools (draw a line selection of known size and call Analyze->Set scale). In the plugin “Pixel size” it is indeed the size of one pixel in whatever units you choose. You just have to be coherent: if you put your pixel size in meters/pixel, the density contrast times gravity (which is exactly what you suspect it is) in kg / (m^2 * s^2), then you will get the surface tension in SI units (N/m) and the capillary length in meters. Of course you can use millimeters everywhere, or inches or whatever. To summarize: the plugin uses “Pixel size” to convert all length parameters from image dimensions to physical lengths. The capillary length is then squared and multiplied by g*\Delta\rho to obtain the surface tension. Thats it. How you manage your units is up to you, you can leave the “pixel size” and “density contrast times gravity” parameters at one and then do the conversion yourself, or fill it in and have the plugin do it. Neither of the two parameters has any effect on the fitting, they are just used in the end to convert the (internally non-dimensional) fit result to physical units.

Hope this helps. Some of this (e.g. the definition of the “density contrast times gravity” parameter) is discussed in the PDF documentation.
Adrian


#6

A software-metapaper describing this plug-in was just published in the Journal of Open Research Software. It’s open access.
A. Daerr and A. Mogne, _Pendent Drop: An ImageJ Plugin to Measure the Surface Tension from an Image of a Pendent Drop. Journal of Open Research Software, 4: e3 (2016), DOI: 10.5334/jors.97


#7

Another e-mail question dump, this time in french. The two questions are:

  1. When I extrude a drop until it pinches off, which image should I choose for the surface tension measurement ? (short answer: the last quasi-static before pinch-off)

  2. Does this plugin also work for very weak surface tensions ? (short answer: yes, but if your capillary tube has a large diameter you risk producing non-axisymmetric drops for which the fit will be less reliable)

If anyone is interested in the more detailed answers yet does not read french well enough to make use of the following, I can translate. In the meantime here is the french version.

  1. Je forme des gouttes avec un pousse seringue et je filme pour pouvoir
    ensuite prendre l’image au temps que je veux. Mais à quel moment dois-je
    mesurer la goutte ? N’importe quand ? Quand elle atteint son volume
    maximal (mais sans s’être encore étirée à la base pour se détacher) ?Ou
    quand la base est en train de s’étirer juste avant de rompre ? Est-ce
    que ca a un gros effet sur la mesure ?

Plus on est proche de la rupture, plus la forme dépendra de la tension de surface (à de très petites tailles au contraire la goutte est toujours ronde), donc le mieux est de prendre une des dernières images avant détachement. D’un autre côté il faut que la mesure soit (quasi-)statique, car on ne tient pas compte des contraintes visqueuses et inertielles sur la forme (les effets dynamiques sont bien pires encore quand il y a des surfactants en jeu). Du coup il faut quand même éviter les toutes dernières images, quand la goutte évolue beaucoup d’une image à l’autre. En pratique c’est rarement une limitation cela dit.

  1. J’ai dû mesurer des IFT basses <1mN/m. Les gouttes sont très petites et
    se détachent tout de suite. J’ai quand meme réussi à fitter la forme de
    goutte avec le plugin mais quelle confiance puis-je avoir dans cette
    mesure ? Je joins une des photos (le capillaire a un diamètre de 1,6 mm)

Je dirais que la mesure devrait être bonne, vu que juste avant détachement on a une grande sensibilité de la forme vis-à-vis de la tension de surface. Il serait bien cependant de trouver éventuellement un capillaire plus fin (de l’étirer au bec Bunsen par exemple), car sur ton image la partie haute de la goutte (sa base, près du capillaire) n’est pas symmétrique gauche/droite, ce qui signifie que l’hypothèse d’axisymmétrie faite par le plugin n’est plus satisfaite.

Cela dit je m’attends à ce que l’erreur systématique reste relativement petite. Du coup répéter la mesure sur plusieurs gouttes, à des taux de gonflement variables, devrait te donner une bonne idée de l’incertitude affectant la mesure.


#8

The following should have been in the JORS paper’s acknowledgment section, shamefully I forgot: Many thanks to Curtis Rueden for the invaluable help on ImageJ2 plugin programming issues.

E.g. in these threads:

And while I am at it also thanks to Michael Doube for pointers to software journals:
Journals to publish plug-ins ?


#11

Dear Dr. Daerr,

Thanks for your software. It is working very well.

I would like to ask some questions regarding my tests. I am working with molten polymers, and then the pinch-off is not happening in a given moment but in a long period of time (it is not evident). The surface tension is increasing when the volume of the drop is increasing (from 15.4 mJ/m2 to 16.8 mJ/m2). The rms fit distance moved from 0.27 to 0.45, and the capillary length from 1.54 to 1.58 mm. After this point the rms values increase very fast and the drop deforms a lot, so I am not considering the date beyond this point.

I calculated the maximum drop size according to your paper, but since the tube diameter is 2 mm, then the maximum drop size is always smaller than the tube diameter for my capillary length values. This would mean that my drop is already bigger than the maximum drop size (I am assuming that the drop size is the maximum horizontal diameter of my drop, is this correct?). With molten polymers it is not possible to keep the volume constant, at least not with our equipment.

My questions are: Which would be the surface tension value?, can the tip radius values give us some indication about a good surface tension value?. I am now making an average of surface tension values where the volume is more stable, is this correct?

Thanks in advance for your reply,

Carlos


#12

Hello Carlos,

Sorry for replying so late, I hope you can still make some use of the following comments.

The crude estimation for the maximum drop size I gave in the paper:

(\text{tube diameter}\cdot\text{capillary length}^2)^{\cfrac{1}{3}}

is valid only if the tube diameter is equal or inferior to the drop `diameter’ (the latter need not be precisely defined when only the scaling is sought, but for discussion’s sake we may assume it is the horizontal diameter). In that case the drop weight will scale as the \rho \cdot diameter^3, whereas the retaining capillary force is limited by the neck region circumference which is at most \pi\cdot\text{tube_diameter}. Equating the two forces yields the given formula. If as in your case the tube diameter is larger than the capillary length of the liquid (times a factor of order unity), we cannot have a stable drop anymore (Rayleigh-Taylor instability).

With molten polymers it is not possible to keep the volume constant, at least not with our equipment.

The drop might reach an equilibrium if you could work with a thinner tube.

My questions are: Which would be the surface tension value?, can the tip radius values give us some indication about a good surface tension value?. I am now making an average of surface tension values where the volume is more stable, is this correct?

I am not familiar enough with polymer fluids to tell you how to judge whether elongational viscosity and normal stresses significantly affect the drop shape during the pinch-off process. Very naively I’d consider that the low RMS deviation that you find for the drop shape adjustment by a static drop profile may be taken as an indication that the surface tension value in that time interval is reasonably well estimated. This is because non-Newtonian effects should affect the profile very unevenly (they are weak in the tip region and dominating in the stretched neck region), so that I’d expect a larger departure from a static shape in case these effects were significant. I haven’t done the full analysis though, so take this with a grain of salt.

I’d recommend trying to use a finer capillary tube to obtain static drops. The next best thing would be to independently measure the rheology of your polymer at around the drop elongation rate to judge whether visco-elastic and non-Newtonian effects may play a significant role.


#13

Dear Adrian,

Thanks for your reply… it clarified my doubts.

Regards,

Carlos


#14

Hello Dr Dear,

First, I’d like to thank you for you software : thank you !

Nevertheless I have a problem to make it work properly. I am trying to mesure the interfacial tension in between a Water/Glycerol/Tween20 solution and silicone oil. But when I use the pendantdrop plugin, it seems to be depending on what I define as the drop (it will be easier to understand with the picture that I joined to this post)

Have you allready encounterded this issue, and if so which “difinition” of the droplet should I use ?

Thank you for taking the time to answer to all the question people have posted.

Carlos (a different one this time)


#15

Dear Carlos,

Thanks for taking the time to report your issue here. Could you post a version of the picture without the colored overlays, or send it to adrian.daerr(at)univ-paris-diderot.fr (along with the pixel scale and the two liquid densities) ? I would like to investigate this a bit more closely, to estimate some parameters such as the Bond number. Normally the answer to your question is: use the biggest selection that does not comprise bits of the capillary tube. In your examples the bottom right one. You can make the selection a bit larger horizontally (it won’t affect the calculation speed): the sub-pixel interface detection needs a dozen-or-so pixels left and right of the drop to function, otherwise the interface (blue line) is determined with integer precision only.

Finally you can try a larger tube (not larger in diameter than about two to three capillary lengths), which will help you produce larger drops and larger curvature differences, which will increase the constraint on the fit.

good luck
Adrian


#16

So i’m getting a perfect blue contour, but adjusting the red one is somewhat of a pain, is there an easy way to get them to match? in addition when i set the scale before i open the plug in it makes it very difficult to change the numbers, since they are now much smaller values and the scroll (up and down arrow buttons) still changes it by 1 after i set the scale when i need to make adjustments on the order of .01


#17

Hi,
The ‘easy’ way to make the red contour match the blue one is to perform an automated fit. This will tend to work better if the initial red contour is not too far off. If the fit does not work I’d be interested in having a sample image to improve the robustness of the algorithm.

Thanks for the feedback on the interface, I’ll think about ways to improve that. The little arrow buttons are handled by ImageJ directly though, so I am not sure I have a handle on the value of the {in|de}crement.

Obviously you can change the scale unit so that the numbers are of order 1, but it would be preferable if the plugin did not impose that kind of choice on the user.

I’ll see what I can do to improve the usage.


#18

Dear Adrian,

I’m having a similar problem. I am getting very nice pictures of the drops however I can not figure out how to determine the pixel size. I can adjust it by knowing what the surface tension is and inching it towards that but I’m using an iPhone X camera. When I change the zoom does that affect pixel size.

Help please. I’m having a hard time understanding.

Thank you in advance for your help and thank you for the time you took to develop this plug in.


#19

Dear Jenise,

What the plugin dialog labels “pixel size” should really read “scale (length/pixel)” (note to self: change that in next version). It should not be confused with the size of the pixels on the camera sensor itself, which in the context of ImageJ is never of any concern. It is the size that one pixel represents on the object that is seen in the image (i.e. on the drop). You determine this size by taking a picture of an object of known size (e.g. a ruler) and by measuring the ratio length/pixel. My search engine returns several pages that describe this process in detail for ImageJ, e.g.
http://microscopy.berkeley.edu/courses/dib/sections/04IPIII/IJsetscale.html
or

(and I do recommend setting the scale the standard way before calling the plugin, rather than editing the corresponding field in the dialog; the latter works of course, but is simply more error-prone)

The zoom may or may not affect this scale, depending on the way it is implemented (as optical zoom, as mere crop,… - I am not familiar with Apple’s gadgets). If in doubt do not modify your zoom level between your spatial calibration and your measurement (and obviously do not change the distance between camera and ruler/drop either).

HTH,
Adrian


#20

Good day Adrian,

if you are going to change terms in the long run

note to self: change that in next version

please be aware of the fact that a pixel has no size. What we are speaking of is pixel spacing. At least all those of us who deal with professional image processing should use the correct term.

Greetings

Herbie


#21

Thanks Herbie for the comment.