Diameter of a droplet using image processing

I would like to know how to get the maximum diameter of a droplet using image processing toolbox.

 Respuesta aceptada

DGM
DGM el 29 de Oct. de 2021
Editada: DGM el 29 de Oct. de 2021
A simple method that works at least for this image:
A = rgb2gray(imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/782708/image.jpeg'));
A = imfill(bwareafilt(A<50,1),'holes');
S = regionprops(A,'boundingbox');
blobwidth = S.BoundingBox(3) % in pixels
blobwidth = 622
% show the extents for reference
imshow(A); hold on
rectangle('position',S.BoundingBox,'edgecolor','y')
You'll have to convert that to mm.

Más respuestas (1)

yanqi liu
yanqi liu el 29 de Oct. de 2021
Editada: yanqi liu el 29 de Oct. de 2021
sir,please check the follow code to get some information
clc; clear all; close all;
im = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/782708/image.jpeg');
im = rgb2gray(im);
bw = imbinarize(im,'adaptive','ForegroundPolarity','dark','Sensitivity',0.85);
bw = imclearborder(bw);
bw = bwareaopen(bw, 100);
[L,num] = bwlabel(bw);
stats = regionprops(L);
figure; imshow(im);
for i = 1 : num
recti = stats(i).BoundingBox;
ceni = stats(i).Centroid;
hold on; rectangle('position', recti, 'EdgeColor', 'g', 'LineWidth', 2)
text(ceni(1), ceni(2), sprintf('width=%.1f', recti(3)), 'Color', 'r');
end
figure; imshow(bw);
rects=cat(1,stats.BoundingBox);
disp(max(rects(:, 3)))
78

Categorías

Más información sobre Image Processing Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 29 de Oct. de 2021

Comentada:

el 23 de Ag. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by