2011-12-05 10 views
2

私は交互の黒と白の色で4象限をマークした回転円板のビデオを持っています。ディスクはある期間にわたって中央から外に移動します。私の目的は、回転の期間にディスクの中心点を追跡することです。雲の点から形成された2つの線の交点を検出する方法

私は関心のある領域のみを表示するためにマスキングを行い、MATLABコンピュータビジョンツールボックス機能を使用して象限を分離するポイントを得るためにコーナー検出も行いました。 enter image description hereのように。

ここで、センターポイントを取得するにはどうすればよいですか?

1)ポイント間にカーブを合わせて交点を見つけたら、2つのラインを形成するポイントを区別する方法は?

2)中心点を追跡する他の簡単な方法はありますか?

ディスクは回転しており、各フレームに新しいコーナーとエッジが作成されています。以下のように、

enter image description here

+0

http://dsp.stackexchange.com/ – cyborg

答えて

0

ディスクの中心部が十分に長い静止したまま場合は、時間の経過とともに解消されない白/黒の同量、と(だけ円周が必要です)サークルを探すことができます。

1

あなたは中心に非常にいいコーナーを持っています。ハリスコーナー検出器を試してみて、サブピクセル精度を楽しむ; Matlabのリンクを持っていませんが、OpenCVのドキュメント http://opencv.willowgarage.com/documentation/cpp/imgproc_feature_detection.html?#cornerHarris にハリスについて読むことができます http://en.wikipedia.org/wiki/Corner_detection

)http://opencv.willowgarage.com/documentation/cpp /imgproc_feature_detection.html?#cornerSubPix

0

は画像の両方のために常に正確に中心を検出するために、次のコードを使用する: -

imgray=rgb2gray(image); 
threshold=graythresh(imgray); 
bw=im2bw(imgray,threshold); 
se3 = strel('disk',2); %you can try with value 1,3 for better accuracy 
bw1 = imerode(bw,SE); 
[B,L] = bwboundaries(bw1,'noholes'); 
stats = regionprops(L,'Centroid'); 
for k=1:2 
centroid = stats(k).Centroid; 
x = stats(k).Centroid(1); %acquire X position of the center mass 
y = stats(k).Centroid(2); %acquire Y position of the center mass 

x_axis(k,1)= x; 
y_axis(k,1)= y; 
end 

X_AXIS(1,1)最初のオブジェクトのXの中心である、X_AXIS( 2,1)は、sのx中心ですエコオブジェクト...

関連する問題