0

cv :: matのバッファがQImageのバッファを指すようにしたいのですが、QImageのデータをcv::matにコピーしません。

cv::Mat const reference_qimage_to_mat(QImage const &img, int format)
{
    cv::Mat mat(img.height(), img.width(), format);

    for(int i = 0; i != mat.rows; ++i)
    {
        //pseudo code, wouldn't work
        //mat.ptr(i) = img.scanLine(i);
    }

    return mat;
}

グーグルで答えを検索しようとしましたが、QImageのデータをcv::matにコピーする方法しか見つかりませんでした。ありがとう

4

1 に答える 1

0

cv::Matオブジェクトは単に画像データのヘッダーであるため、オブジェクトの構築時にそれを行うことができます。

cv::Mat mat(img.height(), img.width(), type, img.bits());

ここtypeで、データに依存します。CV_8UC1シングルチャネルの場合CV_8UC3、RGBの場合などです。

于 2012-11-07T17:56:24.720 に答える