独特のグラデーションを作成し、ユーザーが指定したファイルに保存することになっている次のコードサンプルを作成しました。
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
static IplImage *image = 0;
void main() {
char path[1024];
int x, y;
CvScalar scalar;
scanf("%s", path);
image = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
for (y = 0; y < 480; y++) {
for (x = 0; x < 640; x++) {
scalar = cvGet2D(image, x, y);
scalar.val[0]=(unsigned char)(x + y);
cvSet2D(image, x, y, scalar);
}
}
cvSaveImage(path, image, 0);
}
私はそれを使用してコンパイルします:gcc opencv.c -o opencv `pkg-config --libs --cflags opencv` -lm
そしてすべてがOKのようです。ただし、実行時(入力: "sample.png")に、次のエラーが発生します。
OpenCVエラー:cvPtr2D、ファイル/builddir/build/BUILD/OpenCV-2.3.1/modules/core/src/array.cpp、1797行で引数の値の1つが範囲外です(インデックスが範囲外です) 'cv::Exception'のインスタンスをスローした後に呼び出された終了 what():/builddir/build/BUILD/OpenCV-2.3.1/modules/core/src/array.cpp:1797:エラー:(-211)インデックスが関数cvPtr2Dの範囲外です 中止(コアダンプ)
何か助けてください?前もって感謝します!:)