添付画像に緑色の点で示された点の座標を見つけるのを手伝ってください。線の傾きは既知であり、中心の座標は画像に対して既知である。私はMATLABでコードを記述したいと思います。私にも同じアイデアを教えてください。
イメージは、座標が既知の中心点と、中心点を通過する線の傾きを知るために緑色のドット座標で構成されます。画像上の座標の中心点と線の傾きを知る
-3
A
答えて
0
私は、中心座標を通り、所望の傾きを持つ座標のベクトルを作成しました。
極座標を使ってX、Y座標ベクトルを作成しました。
座標を見つけた後、私は曲線上の緑色の点を探しました。 (テストのために使用される)
%Input image (for testing).
I = imread('cameraman.tif');
I = cat(3, I, I, I); %Make I it "color" image where (R = G = B).
center = [100, 100];
slope = 1.5;
%Mark the center point with red (for debugging).
I(center(1)-1:center(1)+1, center(2)-1:center(2)+1, 1) = 255;
%Put green dots (for debugging).
x0 = 123;y0 = 65;
x1 = 12;y1 = 232;
I(y0-1:y0+1, x0-1:x0+1, 2) = 255;I(y0, x0, 1) = 0;I(y0, x0, 3) = 0;
I(y1-1:y1+1, x1-1:x1+1, 2) = 255;I(y1, x1, 1) = 0;I(y1, x1, 3) = 0;
% #
% 1.5# #
% # #
% # #
% ## alpha
% ############
% 1
alpha = -atan2(slope, 1);
%Create vector of "radius" (distance from the center).
r = -norm(size(I))/2:0.2:norm(size(I))/2;
%Each (x,y) coordinate is on the line passing through center point
x = r*cos(alpha) + center(2);
y = r*sin(alpha) + center(1);
%Remove x and y outsize image boundaries from x, y arrays.
X = x;Y = y;
X((x < 1) | (x > size(I,2)) | (y < 1) | (y > size(I,1))) = [];
Y((x < 1) | (x > size(I,2)) | (y < 1) | (y > size(I,1))) = [];
%Round X and Y (to be legal pixel coordinates).
X = round(X);
Y = round(Y);
R = zeros(size(X)) + 1; %Coordinate of 1'rd plane (red channel).
G = zeros(size(X)) + 2; %Coordinate of 2'rd plane (green channel).
B = zeros(size(X)) + 3; %Coordinate of 3'rd plane (blue channel).
%V gets values of pixels channel pixels in the curve.
rV = I(sub2ind(size(I), Y, X, R)); %Red channel values.
gV = I(sub2ind(size(I), Y, X, G)); %Green channel values.
bV = I(sub2ind(size(I), Y, X, B)); %Blue channel values.
%Find green dots where r, g, b = 255.
V = (rV == 0) & (gV == 255) & (bV == 0);
%Mark X,Y coordinates with blue color (for debugging).
I(sub2ind(size(I), Y, X, B)) = 255;
figure;imshow(I)
v0 = find(V, 1, 'last');
v1 = find(V, 1);
greenDot0 = [Y(v0), X(v0)]
greenDot1 = [Y(v1), X(v1)]
1
中心点が知られている場合は、私が想定し、画像処理を行う必要はありません。 必要なのは線形方程式です。
y = tan(slope) * x
そしてy1
とy2
も写真から知られているので、あなたは単に、x1
とx2
を見つけます。
+0
を書くようにしてください。実際には、傾斜は既に角度の接線です。したがって、「y =勾配* x」 –
関連する問題
- 1. 画像上の線が座標と一致しません。私は、画像上の点を順次プロットのpython
- 2. 画像をクリックしたときの座標を知る
- 3. XY中心を原点とする画像上にプロットする
- 4. CLLocation配列の中心座標点を計算する
- 5. 座標を中心とした矩形の描画
- 6. Android、特定の点の中心画像
- 7. GPS座標を中心とした地球上の円上の点を計算する方法は?
- 8. ポリゴンブロブの中心線(バイナリ画像)
- 9. Pythonを使用して画像内の曲線上にある点の座標を求める
- 10. 画面座標の原点
- 11. 中心のX、Y座標を持つJLabelを描画
- 12. Javascriptで国の中心座標
- 13. 選択から中心点XY座標を取得
- 14. マウスの座標を画像の座標系にマッピングするPyQt
- 15. 画像のピクセル座標
- 16. 中間点サークルアルゴリズム座標
- 17. ポイントの座標が画像の範囲外のときに画像上のポイントをプロットする方法(matlab)
- 18. xcode画像座標
- 19. マップキットオーバーレイ画像座標
- 20. ピクセルシェーダの点の重心座標を取得する方法HLSL
- 21. フォームのビューポート座標を実際の画像座標に変換
- 22. 中心座標からバウンディングボックスを作成
- 23. 2地理座標間の中間点
- 24. OpenTK - 左上原点とピクセル座標
- 25. 画像上の特定の座標の値を表示
- 26. JQueryを使用して、x座標とy座標を別の画像の上に配置するアイコン
- 27. html二次曲線の中心点
- 28. 整流後の左右画像の主点x座標の差が大きい
- 29. 2Dの向きのテスト重心座標
- 30. 画像に座標点をプロットする方法
は私のコードです...理解(最もエレガントではない)のためにそれほど単純ではありませんあなたの入力は画像であり、画像処理技術を使用して座標を取得したいとしますか? –私のソリューションはここ
こんにちはprashanth、[最小、完全で、検証可能な例](http://stackoverflow.com/help/mcve) – obchardon