SURF特徴量を使っ​たマッチングで処理領​域を限定することはで​きますか?

12 ビュー (過去 30 日間)
画像処理で処理をする領域を限定したいのですが、処理をする領域が斜めになっている場合、ROIを使ってのx,y,w,hの指定では対応できませんでした。 特徴量を抽出したり、画を位置合わせするときなどで処理をする領域を限定する方法はありますか?

採用された回答

Kei Otsuka
Kei Otsuka 2018 年 2 月 2 日
ROI外の領域の輝度値をクリップしてしまう方法はどうでしょうか。 例えば、
img = imread('coins.png');
figure, imshow(img)
このようなコインの図があったとして、面積が大きいコインに着目したい場合、
%2値化&穴埋め
bw = imfill(imbinarize(img), 'holes');
%面積2700pix以上の領域抽出
bw = bwpropfilt(bw, 'Area', [2700, 3000]);
%元画像をコピー
img2 = img;
%ROI外の輝度値を255にクリップ
img2(~bw) = 255;
figure, imshow(img2)
とすると以下のような画像が得られ、
この画像に対して抽出した特徴点を元画像にオーバーレイ表示すると以下のようになります。
%特徴点検出
Points = detectSURFFeatures(img2);
%上位20ポイントをプロット
figure, imshow(img); hold on;
plot(Points.selectStrongest(20));
クリップした領域も含めての特徴点になりますので、ROIに限定した特徴点とは意味合いが異なりますが アプリケーションによってはこのようなアプローチも使えると思います。
  1 件のコメント
daisuke shuugisono
daisuke shuugisono 2018 年 2 月 4 日
回答ありがとうございます。

サインインしてコメントする。

その他の回答 (1 件)

Takuji Fukumoto
Takuji Fukumoto 2018 年 2 月 2 日
編集済み: Takuji Fukumoto 2018 年 2 月 2 日
もし任意の形状のROIを作成したいということであれば、impolyで長方形以外のROIを指定することができます。
もし、違う角度でとられたリファレンスの画像があり、そこと合う領域をROIとしたい場合には、 レジストレーション(位置合わせ)を使うことになります。
レジストレーションの手法は 明るさを用いた方法 https://www.mathworks.com/help/releases/R2017b/images/examples/registering-multimodal-mri-images.html
特徴点を使った方法
様々ありますので、ためしながら良い方法を選択いただくと良いかと思います。
  1 件のコメント
daisuke shuugisono
daisuke shuugisono 2018 年 2 月 2 日
回答ありがとうございます。 >>もし、違う角度でとられたリファレンスの画像があり、そこと合う領域をROIとしたい場合には、 レジストレーション(位置合わせ)を使うことになります。 とありますが、レジストレーションをする計算をする範囲をROIで限定し、レジストレーションさせることは可能なのでしょうか。 例えば、背景の違うが同じオブジェクトが写っている画像でレジストレーションをする際に、オブジェクトのみをROIで指定しオブジェクトで位置合わせをする。といったようなイメージです。

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!