OpenCV:调整图像大小

时间:2012-09-02 01:26:24

标签: c opencv

我似乎错过了一些东西,但我无法理解如何调整图像大小。这是代码:

#include <opencv2\core\core.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\highgui\highgui.hpp>

using namespace cv;

int main(int argc, char* argv[])
{
    IplImage* src = NULL;
    IplImage* dst = NULL;
    src = cvLoadImage("image.tif");
    dst = cvCreateImage(cvSize( src->width / 10, src->height / 10 ), src->depth, src->nChannels );

    resize(src, dst, dst->nSize, 0.1, 0.1, CV_INTER_AREA );

    return 0;
}

但是这段代码只会导致编译错误:

error C2664: 'cv::resize' : cannot convert parameter 1 from 'IplImage *' to 'cv::InputArray'

有人能告诉我这里有什么问题吗?我的意思是如何从IplImage创建InputArray?

谢谢, 基督教

1 个答案:

答案 0 :(得分:7)

您正在混合使用OpenCV C和C ++函数。如果您使用C ++编程,则应使用Mat类来存储图像数据。如果您使用纯C,则应使用函数cvResize来调整IplImage的大小。

正如您在OpenCV API文档中所看到的,每个函数都有一个C和C ++编程接口。它们本质上是一样的,你当然可以在C ++中使用C函数,但你不能将C OpenCV结构(如IplImage)与C ++ OpenCV函数(如resize())一起使用。

This简介介绍了OpenCV C ++ API的基本概念。