1

何かが足りないようですが、画像のサイズを変更する方法がわかりません。コードは次のとおりです。

#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 を作成する方法を教えてください。

ありがとう、クリスチャン

4

1 に答える 1

7

OpenCVCとC++関数を混同しています。C ++でプログラミングしている場合は、Matクラスを使用して画像データを格納する必要があります。一方、純粋なCを使用している場合は、関数cvResizeを使用してIplImageのサイズを変更する必要があります。

OpenCV APIのドキュメントでわかるように、すべての関数にCおよびC++プログラミングインターフェイスがあります。これらは基本的に同じことを行っており、もちろんC ++でC関数を使用できますが、C ++ OpenCV関数(resize()など)でC OpenCV構造体(IplImageなど)を使用することはできません。

この紹介では、OpenCV C++APIの基本的な概念について説明します。

于 2012-09-02T01:51:12.087 に答える