• ベストアンサー

画像処理においてグラフカットに詳しい方に質問します

現在、医療画像処理の研究を行っています。 その中でグラフカットを使用するのですが、n-link,、t-linkの値は全て出ていると思うのですが、最後のカットの仕方がどうしてもわかりません。 フォード・ファルカーソンのアルゴリズムでカットしようと思っています。アルゴリズムは理解できているんですが、実装の仕方がどうしてもわかりません。全探索しないといけないのでしょうか? 詳しい方がいれば、ぜひ教えて頂きたいです。わかりやすい参考URLなどがあればそちらも教えて頂ければ幸いです。使用言語はC++です。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • osumk
  • ベストアンサー率100% (1/1)
回答No.1

はじめまして. 基本的にグラフカットでは,グラフが正しく構築出来ていれば(n-link,t-linkが正しく計算出来ていれば), どのような最大フローアルゴリズムを使っても構いません. プログラムは最大フローでググるといくつか出てくると思います. フォードファルカーソンアルゴリズムは単純なアルゴリズムですが, グラフカットで使うような画像では計算に時間が掛かり過ぎることがあると思います. グラフカットで用いられる疎なグラフに対して高速なBKアルゴリズムというのがあるので, 余裕があるなら調べてみるといいと思います. また,OpenCV2.xではグラフカットが標準で実装されているので(grabcut.cpp), 参考になると思います.OpenCVのGrabCutもBKアルゴリズムを使っています.