Ok, I was sort of writing a long post of one approach using this: http://boofcv.org/index.php?title=Example_Detect_Lines
However, I discard it and I think it is better if you use the example from blobScanner (not sure if this comes with the blobDetection library or is another separate lib). You should run the example that comes with this library. In the PDE, go to File>>Examples and then Contributed libraries>>Blobscanner>>blobcontour>>drawBlobContour, this last is a pde file. If this example works for you, it will make your life sort of simple. My understanding is that you apply a filter to make your image bichromatic and then the algorithm will return a set of points that border each test tube. The challenge here is that each test tube needs to be identified as a single unit which might not work in your case unless you create an algorithm that fixes this issue.
If you are able to get the contour of each test tube, then you can draw that contour in a separate canvas and apply line detection algorithms to a single tube. If you use a line detection algorithm, I will bet you will get three lines and the end with no line would be the curve side.
This would be my approach.
Kf