2

ウェブカメラから受け取ったフレームを反転(ミラーリング)する必要があり、次のようなコードに従いました。

cv::flip(gray,gray,1);
imshow("flipped",gray);

灰色はcv::Mat形式で、反転はcvNamedWindowです。qtクリエーターIDEでセグメンテーション違反が発生します。セグメンテーション違反の原因となる可能性のあるグレーの寸法については疑問です。グレーは、カムから受け取った実際の画像から変換されたグレースケール画像です。エラーをクリアするにはどうすればよいですか?誰かもっと良いアイデアがありますか?

4

2 に答える 2

2

MingWが評決だと思います。私が使用しているバージョンには、このようなバグがあると報告されています。ミラー イメージを取得するために、フリップ コード 0 を使用して src イメージを反転し、180 度回転して y 軸に沿って反転しました。

    cv::Mat dst;
    cv::flip(src,dst,0);
    Point2f src_center(dst.cols/2.0F, dst.rows/2.0F);

    cv::Mat rot_matrix = getRotationMatrix2D(src_center, 180.0, 1.0);

    cv::Mat rotated_img(Size(dst.size().height, dst.size().width), dst.type());

    warpAffine(dst, rotated_img, rot_matrix, dst.size());


    imshow("flipped",rotated_img);
于 2013-02-17T16:28:04.737 に答える
2

セグメンテーション違反の理由の 1 つは、Web カメラから OpenCV に渡される「不良」フレームのチェックを実装していない可能性があることです。フレームがNULLでないことを確認してから、ストリームでフリップ/その他の操作を使用する必要があります。

于 2013-02-16T09:22:36.470 に答える