Interpolieren eines eindimensionalen Arrays mit OpenCV

Ich definiere ein Array mit 2 Werten und versuche, die Größenänderungsfunktion des imgproc-Moduls zu verwenden, um die Größe auf 10 Elemente mit linearer Interpolation als Interpolationsmethode zu ändern.

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) << " ";
}

Die Ausgabe, die ich erwartet hätte, ist:

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Was ich jedoch bekomme ist:

0 0 0 0.136364 0.318182 0.5 0.681818 0.863636 1 1 1

Mein Verständnis, wie Größenänderung funktioniert, ist auf einer fundamentalen Ebene eindeutig falsch. Kann mir bitte jemand sagen, was ich falsch mache? OpenCV ist zwar ein Overkill für eine so einfache lineare Interpolation, aber bitte helfen Sie mir, was hier nicht stimmt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage