Вызов API Gpu (неизвестная ошибка) в bindTexture

В настоящее время я пытаюсь внедрить демосайзинг изображений (дебайеринг) с помощью OpenCV3.1 с CUDA8.0 на плате Nvidia Jetson TX1 и страдаю от нерешенных ошибок.

Следующий код является проблемной частью.

cv::cuda::GpuMat debayeredImage_cuda;

PvImage* lImage_raw = lBuffer->GetImage();
lImage_raw->Alloc(lWidth, lHeight, PvPixelMono8);
unsigned char* img = lImage_raw->GetDataPointer();

cv::cuda::GpuMat rawImage_cuda(lHeight, lWidth, CV_8UC1, img, cv::Mat::AUTO_STEP);

//---------Following Line Occurs ERROR-----------//
cv::cuda::demosaicing(rawImage_cuda, debayeredImage_cuda, 
cv::cuda::COLOR_BayerGB2RGB_MHT, 3);

Сообщение об ошибке: ошибка OpenCV: вызов API Gpu (неизвестная ошибка) в bindTexture, файл /media/ubuntu/payload/opencv/modules/core/include/opencv2/core/cuda/common.hpp, строка 102 /media/ubuntu/payload/opencv/modules/core/include/opencv2/core/cuda/common.hpp:102: ошибка: (-217) неизвестная ошибка в функции bindTexture

И это файл, запускающий ошибки common.hpp: 102

cudaSafeCall( cudaBindTexture2D(0, tex, img.ptr(), &desc, img.cols, img.rows, img.step) );

Я следовал руководству по установке OpenCV для Jetson TX1 http://docs.opencv.org/trunk/d6/d15/tutorial_building_tegra_cuda.html, чтобы создать OpenCV 3.1, сочетающий в себе готовый CUDA8.0.

И вот моя команда cmake.

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_TBB=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_opencv_java=ON \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=OFF \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GSTREAMER_0_10=OFF \
-DWITH_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=OFF \
-DWITH_TBB=ON \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DCUDA_GENERATION=Auto \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \
-DCUDA_ARCH_BIN=5.3 \
-DCUDA_ARCH_PTX="" \
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_TESTS=OFF \
-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \
../../opencv

Я понижаю версию с OpenCV 3.3 до OpenCV 3.1, потому что та же ошибка произошла в 3.3, но все же она не исправлена ​​в 3.1.

Я осторожно предлагаю следующие возможные сценарии.

  1. DCUDA_ARCH_BIN. Я много искал в Google, и многие из них говорили о DCUDA_ARCH_BIN, который в моем случае равен 5.3. Тем не менее, версия 5.3 подходит, как сообщает Nvidia на сайте, поэтому я думаю, что это не проблема.
  2. Неправильное использование функции cv::cuda::demosaicing(,,,) в моем коде. Я не уверен, правильно ли я использовал cv:: cuda:: GpuMat для хранения данных изображения.

Я очень мотивирован, чтобы проверить любые ваши комментарии в этой статье, поэтому, пожалуйста, дайте мне знать, если у вас есть какие-либо возможные решения.

0 ответов

Другие вопросы по тегам