ubuntu下opencv的IDE——QT

来源:互联网 发布:知乎 避孕套 父母 编辑:程序博客网 时间:2024/05/23 01:15

1.安装:

sudo apt-get install qtcreator

2.配置

①.打开qt->Tools->Options->Build&Run
②.配置Qt Versions以及Compilers
在termial中输入which qmake以及which gcc把相应的地址添加进去
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

3.测试

在qt中opencv和测试cuda(如果有的话):
新建工程
这里写图片描述
在.pro文件中添加include目录和链接库(”.”表示当前文件夹,这里是妙算通过deb软件包形式安装的opencv,通过源码编译的头文件在/usr/local/include中,库文件在/usr/local/lib中):

SOURCES += main.cpp INCLUDEPATH += .   \               /usr/include \               /usr/include/opencv \               /usr/include/opencv2 \               /usr/local/cuda-6.5/includeLIBS += /usr/lib/*.so

在main.cpp中添加如下代码进行测试:

#include <cmath>#include <iostream>#include "opencv2/core.hpp"#include <opencv2/core/utility.hpp>#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/cudaimgproc.hpp"using namespace std;using namespace cv;using namespace cv::cuda;static void help(){    cout << "This program demonstrates line finding with the Hough transform." << endl;}int main(int argc, const char* argv[]){    Mat src = imread("1.jpg");    if (src.empty())    {        help();        cout << "can not open " <<  endl;        return -1;    }    Mat mask;    cv::Canny(src, mask, 100, 200, 3);    Mat dst_cpu;    cv::cvtColor(mask, dst_cpu, COLOR_GRAY2BGR);    Mat dst_gpu = dst_cpu.clone();    vector<Vec4i> lines_cpu;    {        const int64 start = getTickCount();        cv::HoughLinesP(mask, lines_cpu, 1, CV_PI / 180, 50, 60, 5);        const double timeSec = (getTickCount() - start) / getTickFrequency();        cout << "CPU Time : " << timeSec * 1000 << " ms" << endl;        cout << "CPU Found : " << lines_cpu.size() << endl;    }    for (size_t i = 0; i < lines_cpu.size(); ++i)    {        Vec4i l = lines_cpu[i];        line(dst_cpu, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255), 3, LINE_AA);    }    GpuMat d_src(mask);    GpuMat d_lines;    {        const int64 start = getTickCount();        Ptr<cuda::HoughSegmentDetector> hough = cuda::createHoughSegmentDetector(1.0f, (float) (CV_PI / 180.0f), 50, 5);        hough->detect(d_src, d_lines);        const double timeSec = (getTickCount() - start) / getTickFrequency();        cout << "GPU Time : " << timeSec * 1000 << " ms" << endl;        cout << "GPU Found : " << d_lines.cols << endl;    }    vector<Vec4i> lines_gpu;    if (!d_lines.empty())    {        lines_gpu.resize(d_lines.cols);        Mat h_lines(1, d_lines.cols, CV_32SC4, &lines_gpu[0]);        d_lines.download(h_lines);    }    for (size_t i = 0; i < lines_gpu.size(); ++i)    {        Vec4i l = lines_gpu[i];        line(dst_gpu, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255), 3, LINE_AA);    }    imshow("source", src);    imshow("detected lines [CPU]", dst_cpu);    imshow("detected lines [GPU]", dst_gpu);    waitKey();    return 0;}
0 0