Но размер исходного изображения отличается от img.
Есть ли какая-либо функция opencv для ее изменения размера img?
Ответ 1
Вы можете использовать cvResize. Или лучше использовать С++-интерфейс (например, cv::Mat вместо IplImage и cv::imread вместо cvLoadImage), а затем использовать cv::resize, который обрабатывает выделение и освобождение памяти.
Ответ 2
Ниже перечислены две функции, которые вам необходимы:
// Load images in the C++ format
cv::Mat img = cv::imread("something.jpg");
cv::Mat src = cv::imread("src.jpg");
// Resize src so that is has the same size as img
cv::resize(src, src, img.size());
И, пожалуйста, прекратите использовать старые и полностью устаревшие классы IplImage *
Ответ 3
Для вашей информации эквивалент python:
imageBuffer = cv.LoadImage( strSrc )
nW = new X size
nH = new Y size
smallerImage = cv.CreateImage( (nH, nW), imageBuffer.depth, imageBuffer.nChannels )
cv.Resize( imageBuffer, smallerImage , interpolation=cv.CV_INTER_CUBIC )
cv.SaveImage( strDst, smallerImage )