C++ 画像処理プロジェクトで openCV を使用しています。
この 2 次元配列 I[800][600] に 0 ~ 255 の値を入力しました。この配列をグレーレベルの「IplImage」に配置して、openCV 関数を使用して表示および処理できるようにします。
どんな助けでも大歓迎です。
前もって感謝します。
C++ 画像処理プロジェクトで openCV を使用しています。
この 2 次元配列 I[800][600] に 0 ~ 255 の値を入力しました。この配列をグレーレベルの「IplImage」に配置して、openCV 関数を使用して表示および処理できるようにします。
どんな助けでも大歓迎です。
前もって感謝します。
Opencv C++ インターフェイスでは簡単です。行列を初期化するだけで済みます。以下の行を参照してください。
cv::Mat img = cv::Mat(800, 600, CV_8UC1, I) // I[800][600]
Opencv は img を 8 ビットのグレースケール イメージとして扱います。
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でループします)。
関連性の高い質問については、この投稿を参照してください