重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
画像の特徴点xy座標50個をplotし、それぞれの点を線で結んだ結果を画像の配列として扱いたいのですが、現在は
a : 50x2(512x512の画像の特徴点の座標)
imshow(Img) > hold on > line or plot(a(:,1),a(:,2))
だと、結果を512x512配列として扱えません。
点と点を直線で結んでいくような関数などありましたらよろしくお願いします。

A 回答 (2件)

#1です。



あ、なるほど。
選択範囲内の画像を切り出すためのフィルタを作りたいわけですね。

それでしたら、
範囲のプロットは、

plot(a(:,1), a(:,2), 'ko', a(:,1), a(:,2), 'k-', [a(1,1) a(end,1)], [a(1,2) a(end,2)], 'k-');

で、フィルタは、

IX = イメージのX軸サイズ
IY = イメージのY軸サイズ
x = a(:, 1);
y = a(:, 2);
filter = inpolygon(IX, IY, x, y);

で得られるんじゃないでしょうか。

■ inpolygon
http://dl.cybernet.co.jp/matlab/support/manual/r …
    • good
    • 0
この回答へのお礼

どうもありがとうございます!
このような関数を探しておりました。
私の拙い説明に付き合って頂きありがとうございました。

お礼日時:2008/01/12 13:07

何を質問したいのか良く分かりませんが、



> 点と点を直線で結んでいく

でしたら、

plot(a(:,1), a(:,2), 'ko', a(:,1), a(:,2), 'k-');

で良いんじゃないでしょうか?

この回答への補足

回答して頂いてありがとうございます。
質問内容がわかりにくく申し訳ないです。
例えば5x5の画像の特徴点であるA点(1.1) B点(5,5)を与えた場合、
(1,1)(2,2)(3,3)(4,4)(5,5)の要素が1、他の要素は0となるような
5x5行列を求めているということです。
plotの結果では5x5の画像として扱えません。
目的としては画像の特徴点を抽出し、その座標を結んでその直線の内部の情報だけを表示させたいと思っています。
引き続きよろしくお願い致します。

補足日時:2008/01/11 21:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!