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() 的末尾添加一个

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

调用cv::waitKey(param)是至关重要的,因为它会处理您打开的窗口中的事件循环(除了返回用户在等待期间按下的键)。这param是函数返回前等待的毫秒数。用于0无限等待,直到按下某个键。

于 2012-06-21T11:22:27.107 回答