簡體   English   中英

MATLAB,氣泡流中自由表面檢測算法

[英]MATLAB, algorithm for free surface detection in bubbly flow

我正在嘗試找出一種從PIV圖像中檢測自由表面的算法(請參見附件)。 主要問題是,在考慮中的流動中,氣泡被注入到流體中,氣泡由於浮力而上升,並傾向於位於表面頂部。 我不希望這些被誤認為是自由表面(實際上是希望它們下面的“第二個”邊緣)-我正在努力弄清楚如何將其包括在算法中。 理想情況下,我想要一個x和y值的數組,它們表示自由表面的坐標(如連續的平滑曲線)。 我最初的方法是從左到右掃描圖片,一次掃描一列,找到一條邊,移至下一列,等等。成兩半。 所以我想知道是否有一些更復雜的方法可以解決此問題。

如果有人在圖像處理/邊緣檢測領域有任何專業知識,則任何建議都將不勝感激。

典型的PIV圖像

期望的結果

我認為您實際上可以使用形態學方法解決問題。

A = imread('./MATLAB/ZBhAM.jpg');

figure;
subplot 131;
imshow(A)

subplot 132;
B = double(A(:,:,1));
B = B/255;
B = im2bw(B, 0.1);
imshow(B);

subplot 133;
st = strel('diamond', 5);
B = imerode(B, st);
B = imdilate(B, st);
B = imshow(B);

得到以下結果: 在此處輸入圖片說明

如您所見,這種方法並不完美,主要是因為我在im2bw為閾值選擇了一個隨機值,如果您對圖像的不同列使用自適應閾值,則應該會更好。

否則,請嘗試在照明上工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM