Interpolando un arreglo dimensional usando OpenCV
Defino una matriz de 2 valores e intento usar la función de redimensionamiento del módulo imgproc para redimensionarla a 10 elementos con interpolación lineal como método de interpolación.
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) << " ";
}
La salida que habría esperado es:
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Lo que obtengo sin embargo es:
0 0 0 0.136364 0.318182 0.5 0.681818 0.863636 1 1 1
Claramente, mi comprensión de cómo funciona el cambio de tamaño es errónea en un nivel fundamental. ¿Alguien por favor me puede decir qué estoy haciendo mal? Es cierto que OpenCV es una exageración para una interpolación lineal tan simple, pero por favor, ayúdenme con lo que está mal aquí.