反射強度画像同士のSURFを用いた対応点検出

2 ビュー (過去 30 日間)
ichiro obayashi
ichiro obayashi 2017 年 5 月 6 日
コメント済み: ichiro obayashi 2017 年 5 月 8 日
レーザースキャナによる反射強度を用いて作製された、反射強度画像同士をSURFを用いて対応点検出したいと考えています。 反射強度データは144*176の形をしています。 imwriteを用いてデータをJPGとして保存すると、すべての値が255という1つの値に変換されてしまいます。 下記がコードになっています。お互いの反射強度データ内で対応点を見つける方法がありましたらアドバイスお願いいたします。 宜しくお願い致します。
if true
% code
load t_0001.dat;
a=t_0001;
% %% 反射強度 %%%%%%%
i1=a(433:576,1:176);
%%%%画像として保存 %%%%%%
imwrite(i1,'1.jpg');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
load t_0030.dat;
b=t_0030;
% %% 反射強度 %%%%%%%
i2=b(433:576,1:176);
%%%%画像として保存 %%%%%%
imwrite(i2,'2.jpg');
I1 = imread('1.jpg');
I2 = imread('2.jpg');
points1 = detectSURFFeatures(I1);
points2 = detectSURFFeatures(I2);
[f1,vpts1] = extractFeatures(I1,points1);
[f2,vpts2] = extractFeatures(I2,points2);
indexPairs = matchFeatures(f1,f2) ;
matchedPoints1 = vpts1(indexPairs(:,1));
matchedPoints2 = vpts2(indexPairs(:,2));
figure; showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2);
legend('matched points 1','matched points 2');
end

採用された回答

Tohru Kikawada
Tohru Kikawada 2017 年 5 月 7 日
画像として保存した際にすべての値が255になってしまうということですが、こちらは imwrite が画像書き出しする際に強制的に uint8 型に変換をしているからになります。一度、 mat2gray などでデータのレンジを0~1の範囲に圧縮する必要があります。
また、対応点検出について、再現できるデータがないと現状の方法でどこがうまくいっていないのか判別することが難しいです。 t_0001.dat t_0030.dat を添付いただけると状況が再現できるのでより適切なアドバイスがもらえるかもしれません。
  1 件のコメント
ichiro obayashi
ichiro obayashi 2017 年 5 月 8 日
Tohru Kikawada 様 ご回答ありがとうございました 早速ご指摘の通りに実行してみます
ありがとうございました。

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange特徴の検出と抽出 についてさらに検索

Community Treasure Hunt

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

Start Hunting!