2
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <QDebug>

int main()
{
    // Read input image
    cv::Mat img= cv::imread("D:\\extra\\Procesare de imagine\\altele\\images\\group.jpg");
    if (!img.data)
    {
        qDebug("no image");
        return 0;

    }

    // Display the image
    cv::namedWindow("Image");
    cv::imshow("Image",img);

    // Erode the image
    cv::Mat eroded;
    cv::erode(img,eroded,cv::Mat());


    cv::waitKey();
    return 0;
}

こんにちは、opencv (Qt) 関数の erode() と dilate() に次の問題があります。msvc10 コンパイラを使用します。簡単なコードを実行しようとしましたが、cv::erode(img,eroded,cv::Mat()) 行でクラッシュします。エラー メッセージは表示されず、「program.exe が動作を停止しました」というダイアログが表示されるだけです。「プログラムのデバッグ」に移動すると、Call Stack tbb.dll が表示されます ([以下のフレームは正しくないか、欠落している可能性があります。tbb.dll のシンボルがロードされていません] : )。最初からデバッグ モードでのビルドに問題があり (imread はデバッグでは機能せず、cvLoadImage のみ)、関数 cv::threshold() は非常に単純なコードで同じようにクラッシュします。tbb.dll の隣に tbb.pdb をコピーすることで解決できると読みましたが、うまくいきません。

4

1 に答える 1

0

Kamyarのコメントに追加するだけです:

デバッグ構成でコンパイルしている場合は、おそらく tbb_debug.dll という名前の tbb デバッグ バージョンも使用する必要があります。Windows 用の OpenCV 2.4.1 の場合は、build\common\tbb の下の OpenCV ディレクトリにあります。

于 2012-08-23T21:36:28.293 に答える