2018年12月18日 更新

Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

プログラミング言語「julia」を用いて画像処理を行います.インストールに続き,今回は画像のセグメンテーションのライブラリを用いて,セグメンテーションを行います.

331 view お気に入り 0

セグメンテーションのプログラムを実行

using ImageSegmentation
seeds = [(CartesianIndex(126,81),1), (CartesianIndex(93,255),2), (CartesianIndex(213,97),3)]
segments = seeded_region_growing(img, seeds)
セグメンテーション

3. セグメンテーションした画像を表示します.

imshow(map(i->segment_mean(segments,i), labels_map(segments)));
画像表示
 (5201)

プログラムの解説

セグメンテーションをするとき,プログラムでは,seeds を3点設定しました.このseeds の点をまず見てみましょう.
using Plots
gr()
Plots 関数
そして,horse の画像の上にseeds点をプロットします.
x_arr = zeros(Float64, 3, 1)
y_arr = zeros(Float64, 3, 1)
for j in 1:3
    x_arr[j] = float64(seeds[j][1][1])
    y_arr[j] = float64(seeds[j][1][2])
end
Array
plot(img)
plot!(y_arr, x_arr,color = "red", marker="o", st=:scatter)
plot
 (5213)

このように代表点を設定しています.

なお,ここで用いているアルゴリズムは seeded_region_growing というアルゴリズムです.詳しくは読んでいないですが,指定した点から,領域を拡大していくようにして,同じような画素値の領域を作っていくアルゴリズムです.そのため 分割された領域を同じ領域として認識することができません

この問題点を解決するために,別のアルゴリズムが提案されています.

別のアルゴリズムの適用

38 件

関連する記事 こんな記事も人気です♪

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

2016年7月22日に画像処理・画像解析エンジニアMeet Up! #3 ~Lp-tech2周年特集~がありました。様子についてご紹介します。
画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアのミートアップ第3段として、Lp-tech感謝祭を開催します。内容は湖城氏によるImageJの講習会、そしてLp-techの人気のある記事に関してそれの勉強会をする予定です。
Juliaで学ぶ画像処理〜ニューラルネットワーク(Neural Network) part2〜

Juliaで学ぶ画像処理〜ニューラルネットワーク(Neural Network) part2〜

今回は前回に引き続き、プログラミング言語Juliaで機械学習のニューラルネットワークの実装方法についてご紹介します。
画像の一部を消すInpainting という技術とその実装 (python)

画像の一部を消すInpainting という技術とその実装 (python)

Python + OpenCVにより,画像の修復の技術,「Inpainting 」の実装を行います.
三好 裕之 | 4,012 view

この記事のキーワード

この記事のキュレーター

三好 裕之 三好 裕之