1

C++ 画像処理プロジェクトで openCV を使用しています。

この 2 次元配列 I[800][600] に 0 ~ 255 の値を入力しました。この配列をグレーレベルの「IplImage」に配置して、openCV 関数を使用して表示および処理できるようにします。

どんな助けでも大歓迎です。

前もって感謝します。

4

2 に答える 2

3

Opencv C++ インターフェイスでは簡単です。行列を初期化するだけで済みます。以下の行を参照してください。

cv::Mat img = cv::Mat(800, 600, CV_8UC1, I) // I[800][600]

Opencv は img を 8 ビットのグレースケール イメージとして扱います。

于 2012-06-19T04:48:27.133 に答える
0
CvSize image_size;
image_size.height = 800;
image_size.width = 600;
int channels = 1;
IplImage *image = cvCreateImageHeader(image_size, IPL_DEPTH_8U, channels);
cvSetData(image, I, image->widthStep)

これはテストされていませんが、修正が必要になる可能性が最も高いのは の 2 番目のパラメータcvSetData()です。これは符号なし文字データへのポインターである必要があり、 の一部ではない 2D 配列を使用しているだけの場合はMat、少し異なることを行う必要があります (おそらくループ?可能な限りopenCVでループします)。

関連性の高い質問については、この投稿を参照してください

于 2012-06-19T01:22:13.873 に答える