2 つの値の配列を定義し、imgproc モジュールのサイズ変更関数を使用して、補間方法として線形補間を使用して 10 要素にサイズ変更しようとしました。
cv::Mat input = cv::Mat(1, 2, CV_32F);
input.at<float>(0, 0) = 0.f;
input.at<float>(0, 1) = 1.f;
cv::Mat output = cv::Mat(1, 11, CV_32F);
cv::resize(input, output, output.size(), 0, 0, cv::INTER_LINEAR);
for(int i=0; i<11; ++i)
{
std::cout<< output.at<float>(0, i) << " ";
}
私が期待していた出力は次のとおりです。
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
しかし、私が得るものは次のとおりです。
0 0 0 0.136364 0.318182 0.5 0.681818 0.863636 1 1 1
明らかに、サイズ変更がどのように機能するかについての私の理解は、根本的なレベルで間違っています。誰かが私が間違っていることを教えてもらえますか? 確かに、OpenCV はこのような単純な線形補間にはやり過ぎですが、ここで何が問題なのか教えてください。