How to track the boundary of a drop over successive frames?

1 次查看(过去 30 天)
Hi,
I am trying to track the boundary of drop that is spreading over a liquid. The drop is circular initially but get deformed over subsequent frames. A few frames from the video are attached in this Hyperlink. I tried using regionpros and hough transform in Matlab but neither of them worked. The major problem is due to the background which is a grid placed in order to enhance the contrast of the edge (without it the edge is not very clear) while recording the video. How can I measure the area/ perimeter of the region enclosed by the interface?
Any help on how to proceed would be really appreciated.
Thanks,
Rajesh

回答(1 个)

Image Analyst
Image Analyst 2017-5-2
Try thresholding and calling bwboundaries. If that doesn't work because the boundary is too faint, then try to seal it by using imdilate() before thresholding:
img = imdilate(grayImage, true(3));
binaryImage = img > 128; % Or whatever value works.
binaryImage = imfill(binaryImage, 'holes'); % Fill it so we can get the outer boundary only.
boundaries = bwboundaries(binaryImage);
  2 个评论
Rajesh
Rajesh 2017-5-2
编辑:Rajesh 2017-5-2
Dilating the image make the interface less prominent even for a low value of the structuring element. So the subsequent operations become more difficult. Is there an alternate way I could perform dilation to join the pixels in the band of white pixels at the interface?
I = imread('frame (1).jpg');
figure(1), imshow(I);
J=im2double(I);
figure(2), imshow(J);
se = strel('disk',1);
K = imdilate(J,se);
figure(3), imshow(K);
Image Analyst
Image Analyst 2017-5-2
It should make the white ring larger. I don't know why it didn't.
You could try just thresholding the noisy image and then calling bwareafilt() or bwareafilt() to take only blobs of a certain size. Then call bwconvhull() to create the ellipses.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by