當我編譯這個例子:誤差gpumat和墊
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"
int main (int argc, char* argv[])
{
try
{
cv::Mat src_host = cv::imread("file.png", CV_LOAD_IMAGE_GRAYSCALE);
cv::gpu::GpuMat dst, src;
src.upload(src_host);
cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);
cv::Mat result_host = dst;
cv::imshow("Result", result_host);
cv::waitKey();
}
catch(const cv::Exception& ex)
{
std::cout << "Error: " << ex.what() << std::endl;
}
return 0;
}
我得到了以下錯誤:
threshold.cpp: In function ‘int main(int, char**)’:
threshold.cpp:19: error: conversion from ‘cv::gpu::GpuMat’ to non-scalar type ‘cv::Mat’ requested
有誰知道這是爲什麼?
感謝您的答覆。 現在執行這個文件,下面的錯誤時: /// OpenCV的錯誤:未知的錯誤代碼-216(該庫不支持CUDA編譯)在複製,文件/home/cbib/Descargas/OpenCV-2.4。 3/modules/core/src/gpumat.cpp,line 736 ///// 你知道會發生什麼嗎? –
@ChitoWebster ...這是因爲您正在使用未經CUDA支持編譯的OpenCV二進制文件。檢查[這個答案](http://stackoverflow.com/questions/13228762/opencv-2-4-3rc-and-cuda-4-2-opencv-error-no-gpu-support/13231205#13231205)其中同樣的問題已經解決。 – sgarizvi