C++ openSuse上的OpenCV 3和Cuda 7在监视器上创建工件

C++ openSuse上的OpenCV 3和Cuda 7在监视器上创建工件,c++,opencv,C++,Opencv,晚上好, 在openSuse(13.1)上用Cuda(7.0)试用OpenCV(3.0.0)时,我注意到一个有趣的行为。对于Cuda和OpenCV以及微型测试程序来说,编译工作得很好: #include <iostream> #include <vector> #include "opencv2/opencv.hpp" #include "opencv2/cudaarithm.hpp" #include "opencv2/cudaimgproc.hpp" using n

晚上好,

在openSuse(13.1)上用Cuda(7.0)试用OpenCV(3.0.0)时,我注意到一个有趣的行为。对于Cuda和OpenCV以及微型测试程序来说,编译工作得很好:

#include <iostream>
#include <vector>
#include "opencv2/opencv.hpp"
#include "opencv2/cudaarithm.hpp"
#include "opencv2/cudaimgproc.hpp"

using namespace std;

int main (int argc, char* argv[]) {
    try {
        cv::Mat src_host, inp = cv::imread("/home/foo/img.jpg", cv::IMREAD_COLOR);
        cv::cvtColor(inp,src_host,CV_BGR2GRAY);

        cv::cuda::GpuMat dst, src;
        src.upload(src_host);

        cv::cuda::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);

        cv::Mat result_host;
        dst.download(result_host);

        cv::imshow("Result", result_host);
        cv::waitKey();

    }
    catch(const cv::Exception& ex) {
        std::cout << "Error: " << ex.what() << std::endl;
    }
    return 0;
}
#包括
#包括
#包括“opencv2/opencv.hpp”
#包括“opencv2/cudaarithm.hpp”
#包括“opencv2/cudaimgproc.hpp”
使用名称空间std;
int main(int argc,char*argv[]){
试一试{
cv::Mat src_host,inp=cv::imread(“/home/foo/img.jpg”,cv::imread_COLOR);
cv::cvtColor(inp、src_主机、cv_BGR2GRAY);
cv::cuda::GpuMat dst,src;
src.upload(src_主机);
cv::cuda::threshold(src、dst、128.0、255.0、cv_THRESH_二进制);
cv::Mat结果\主机;
下载(结果/主机);
cv::imshow(“结果”,结果\主机);
cv::waitKey();
}
捕获(常量cv::异常和异常){

std::难道这只发生在使用CUDA时吗?请尝试使用非CUDA版本的算法。没错,没有CUDA时也会发生。问题发生在cvtColor函数中。