Drop contact angle measurement by θ/2 method
Show older comments
I want to get the contact angle of the drop sitting on a substrate. I have found a code on drop shape analysis (link:https://ch.mathworks.com/matlabcentral/fileexchange/57919-drop-shape-analysis-fit-contact-angle-by-double-ellipses-or-polynomials) but it does not work well on my image. I want to modify the algorithm as below:
According to the source code, I can detect the subpixel edges, then detect the longest edges, and then divide the longest edge into left and right edges. After the above stages, I want to change the algorithm as follows:
I want to identify the two edge points at the drop base (pt. 1 and pt. 2), draw a straight line through the points, so this will be the base of the drop, divide the base at middle (r), get the height of drop at the middle point of base (h), then get contact angle θ. Important is that I need an algorithm so that the two edge points at the drop base will always be detected at the intersection of the drop and its reflection and I don’t know how to do it as I am really new in image processing.
I have uploaded the source code but now I am really stuck with the remaining stages. I would really appreciate and be grateful if someone can help me with this.
For more clear understanding of the problem description, I have also uploaded a MS Word file, containg the problem statement with pictorial descriptions.
Answers (1)
Image Analyst
on 5 Feb 2022
Edited: Image Analyst
on 5 Feb 2022
0 votes
In your other question I gave you code to get the equation of the circle. And to find the baseline. So you just need to see when the baseline is above the circle. Then differentiate the circle to get dy/dx at that point. Knowing that slope, you can get the angle using the arctangent.
7 Comments
JUBAIR AHMED SHAMIM
on 5 Feb 2022
Edited: JUBAIR AHMED SHAMIM
on 5 Feb 2022
Image Analyst
on 5 Feb 2022
Look at your base. It's not flat as far as image pixels go. It could be that you have glare that's causing the digitized base to appear larger than it should be. It could also be due to overexposure. You should also lower the camera so that the optic axis is along the surface of the base, not looking down onto it at an oblique angle like you currently have it, meaning it's better to get a perpendicular side view, which is not what you have.
To determine contact angle you need to fit the "good" part of the droplet to an ellipse. See attached function. Then you need to determine the baseline, and where the ellipse crosses the baseline. Then at that (x,y) contact point you need to get the tangent line to the ellipse at that point and determine the angle between that tangent line and your baseline. As you can see because of overexposure and glare, you cannot get a good line for your baseline so that's what you need to fix.
JUBAIR AHMED SHAMIM
on 5 Feb 2022
yanqi liu
on 6 Feb 2022
yes,sir,may be upload more image files from high speed camera
Image Analyst
on 6 Feb 2022
Edited: Image Analyst
on 6 Feb 2022
Maybe try hough or houghlines to find the baseline. Or if you know the baseline is perfectly level, just sum your image horizontally and examine the vertical profile
verticalProfile = mean(grayImage, 2);
plot(verticalProfile, 'b-')'
Or simply look at the mask of the blob. Then find the line at which the width is widest and look below there to find the min width.
widths = sum(mask, 2);
[widestWidth, lineNumber] = max(widths);
widths(1:lineNumber) = widestWidth; % Make top part wide so we won't find it below.
[narrowestWidth, lineNumber] = min(widths);
JUBAIR AHMED SHAMIM
on 6 Feb 2022
JUBAIR AHMED SHAMIM
on 7 Feb 2022
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!