主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

雪片の粒度分布

この例では,粒度分布を使用してイメージ内の雪片のサイズ分布を計算する方法を示します。粒度分布は,最初に各オブジェクトを明示的にセグメント化(検出)せずにイメージ内のオブジェクトの大きさの分布を決定します。

イメージの読み取り

イメージ‘snowflakes.pngを読み取ります。これは雪片の写真です。

我= imread (“snowflakes.png”);imshow(我)

图中包含一个坐标轴。轴包含一个image类型的对象。

コントラストの強調

最初の手順では,イメージでの強度コントラストを最大化します。これを実行するには,コントラストを制限する適応ヒストグラム均等化を実行する関数adapthisteqを使用します。データ型の全ダイナミックレンジを満たすように,関数imadjustを使用してイメージ強度を再スケーリングします。

claheI = adapthisteq(我“NumTiles”10 [10]);claheI = imadjust (claheI);imshow (claheI)

图中包含一个坐标轴。轴包含一个image类型的对象。

イメージでの表面積強度分布の決定

粒度分布は,雪片の表面積強度分布をサイズの関数として推定します。粒度分布でのイメージオブジェクトは,サイズが増大する”ふるい”によって取捨選択される石のようなものであり,そのサイズは各パスを通過した後の残りを収集することで決まります。イメージオブジェクトのふるい分けは,構造体要素のサイズを増加させながらイメージを開き,開いた後で残りの表面積強度(イメージでのピクセル値の総和)をカウントすることで実行します。

構造体要素のサイズを増大させると表面積強度がゼロになるように,カウンターの制限を選択します。表示目的のために,表面積配列の最初のエントリは空白にします。

radius_range =高宾街;intensity_area = 0(大小(radius_range));counter = radius_range remain = imopen(clhei, strel(“磁盘”计数器));Intensity_area (counter + 1) = sum(remain(:)); / /保留结束图绘制(intensity_area,的m - *网格)标题(“打开图像中的像素值与半径的总和”)包含(“打开半径(像素)”) ylabel (“打开对象的像素值之和(强度)”

图中包含一个坐标轴。标题为“打开图像中像素值与半径之和”的轴包含一个类型为line的对象。

分布の1次導関数の計算

2回連続したオープニング間で表面積強度が大幅に下がる場合は,イメージに小さいオープニングと同じようなサイズのオブジェクトがあるということです。これは,表面積強度配列の1次導関数と等しく,イメージには雪片のサイズ分布が含まれています。関数diffで1次導関数を計算します。

intensity_area_prime = diff (intensity_area);情节(intensity_area_prime的m - *网格)标题(“雪花的粒度测定(大小分布)”) ax = gca;斧子。XTick = [0 2 4 6 8 10 12 14 16 18 20 22];包含(“雪花的半径(像素)”) ylabel (“雪花中的像素值之和作为半径的函数”

图中包含一个坐标轴。标题为雪花粒度测量(大小分布)的轴包含一个类型线对象。

特定の半径をもつ雪片の抽出

グラフの局部的最小値とその半径の値に注意してください。局部的最小値により,その半径をもっている雪片があることが分かります。最小ポイントが負になると,その半径での雪片の累積強度が大きくなります。たとえば,負の最小ポイントは,5ピクセルの半径マークで発生します。5ピクセルの半径の雪片は,次の手順で抽出できます。

open5 = imopen (claheI strel (“磁盘”5));网球公开赛= imopen (claheI strel (“磁盘”6));rad5 = imsubtract (open5,网球公开赛);imshow (rad5 [])

图中包含一个坐标轴。轴包含一个image类型的对象。

参考

||||