0

私はUbuntuにOpenCvとQtを正常にインストールしました。いくつかのサンプルコードをデバッグして実行できますが、QtConsoleアプリケーションを作成するとビルドできません...これが画像の一部のピクセルをランダムに白くするサンプルコードです

opencv2/core/core.hpp
opencv2/highgui/highgui.hpp
void salt(cv::Mat &image, int n)
{
    for(int k=0; k<n; k++)
    {
        int i=rand()%image.cols;
        int j=rand()%image.rows;

        if(image.channels() == 1)
        {
            image.at<uchar>(j,i)=255;
        }
        else if(image.channels() == 3)
        {
            image.at<cv::Vec3b>(j,i)[0]=255;
            image.at<cv::Vec3b>(j,i)[1]=255;
            image.at<cv::Vec3b>(j,i)[2]=255;
        }
    }
}

int main()
{
    cv::Mat resim = cv::imread("boldt.jpg");
    salt(resim,3000);
    cv::namedWindow("Cerceve");
    cv::imshow("Cerceve",resim);
}

.pro私は自分の書店を次のようなファイルに追加しました

INCLUDEPATH += /usr/local/include/opencv2

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_features2d -lopencv_calib3d

ターミナルからプログラムを実行しようとすると、次のように表示されます。

初期化完了

利用可能なopenglサポート

何も起こりません..デバッグ中にエラーは発生しません

4

1 に答える 1

1

cv::waitKey(..)main()の最後にaを追加します

cv::imshow("Cerceve",resim);
cv::waitKey(0);
return 0;

呼び出しcv::waitKey(param)は、開いたウィンドウのイベントループを処理するために重要です(待機時間中にユーザーが押したキーを返すことは別として)。param関数が戻るまで待機するミリ秒数は次のとおりです。0いくつかのキーが押されるまで無限に待機するために使用します。

于 2012-06-21T11:22:27.107 に答える