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

2 views (last 30 days)
ichiro obayashi
ichiro obayashi on 6 May 2017
Commented: ichiro obayashi on 8 May 2017
レーザースキャナによる反射強度を用いて作製された、反射強度画像同士を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

Accepted Answer

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

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!