Computing water level based on difference in frame colors
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to measure the water levels taken from a camera as a burst of waves is run. I have the camera recording of the water level as an avi file. I need to extract all the frames from this avi file, in order to measure the water level in each frame. A green dye was placed in the water to allow for easy examination of the water column (see attached picture).
Any ideas how I would do this on MATLAB?
0 Kommentare
Antworten (1)
Image Analyst
am 17 Apr. 2019
I would convert from RGB to HSV, then take the S channel. I'd then take the mean along rows (direction 2), then take the location of the hald way point. Something like
hsvImage = rgb2hsv(rgbImage);
verticalProfile = mean(hsvImage(:, :, 2), 2);
threshold = 0.5 * (min(verticalProfile) + max(verticalProfile))
topLine = find(verticalProfile > threshold, 1, 'first')
hold on;
line([1, size(rgbImage, 2)], [topLine, topLine], 'Color', 'r')
If it doesn't work, attach the image that it doesn't work for.
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!