SURF特徴量を使ったマッチングで処理領域を限定することはできますか?
2 views (last 30 days)
Show older comments
daisuke shuugisono
on 1 Feb 2018
Commented: daisuke shuugisono
on 4 Feb 2018
画像処理で処理をする領域を限定したいのですが、処理をする領域が斜めになっている場合、ROIを使ってのx,y,w,hの指定では対応できませんでした。 特徴量を抽出したり、画を位置合わせするときなどで処理をする領域を限定する方法はありますか?
0 Comments
Accepted Answer
Kei Otsuka
on 2 Feb 2018
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に限定した特徴点とは意味合いが異なりますが アプリケーションによってはこのようなアプローチも使えると思います。
More Answers (1)
Takuji Fukumoto
on 2 Feb 2018
Edited: Takuji Fukumoto
on 2 Feb 2018
もし任意の形状のROIを作成したいということであれば、impolyで長方形以外のROIを指定することができます。
もし、違う角度でとられたリファレンスの画像があり、そこと合う領域をROIとしたい場合には、 レジストレーション(位置合わせ)を使うことになります。
レジストレーションの手法は 明るさを用いた方法 https://www.mathworks.com/help/releases/R2017b/images/examples/registering-multimodal-mri-images.html
特徴点を使った方法
様々ありますので、ためしながら良い方法を選択いただくと良いかと思います。
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!