質問: OpenCV2.4.13を使用しています。 `cv::magnitude( vecX, vecY, vec );` でベクトルの大きさを求めることができますが、 逆にベクトルのX成分とY成分を求める関数はOpenCVで用意されていますか? 自前で計算していますが、存在するのならそちらを使ったほうがいいなと思ったので、よろしくお願いします。
回答: ベクトルの大きさと、正規化された (つまり、長さが1の) 方向ベクトルが分かるなら、ベクトルのスカラー倍を計算すればそのベクトルの各成分を求めることができます。 たとえばベクトルの大きさが浮動小数点数型の変数 `dist` として与えられ、方向ベクトルのリストが `cv::Mat` 型の変数 `dir` として与えられるのであれば、`dist * dir` で計算ができます。`vecX` や `vecY` の形式にしたいなら、計算結果に対して `cv::Mat::row` や `cv::Mat::col` を使って抽出すると良いです。