我已经在 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
当我尝试从终端运行程序时 它说:
init done
opengl support available
然后什么也没发生.. 调试时没有报错
最佳答案
在 main() 的末尾添加一个 cv::waitKey(..)
cv::imshow("Cerceve",resim);
cv::waitKey(0);
return 0;
调用 cv::waitKey(param)
是至关重要的,因为它会处理您打开的窗口中的事件循环(除了返回用户在等待时间内按下的键)。这里的 param
是函数返回前等待的毫秒数。使用 0
无限等待直到按下某个键。
关于c++ - OpenCV 编译 Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135718/