在android上使用opencv的ocl模組遇到的問題(一)
執行系統:一個裁剪版的android系統
使用的核函式:pyrlk.cl
由於opencl的機制的問題,在第一次執行的時候會產生*.clb檔案,我在產生lkSparse_C1_D5的kernel時出現錯誤,而之前的pyrDown_C1_D5等kernel都順利完成。
報錯資訊:"
BUILD LOG: pyrlk: -D DOUBLE_SUPPORT
<source>:676:11: error: using invalid qualifier with sampler type
sampler_t sampleri = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
^
error: Compiler frontend failed (error code 58)
OpenCV Error: Gpu API call (CL_BUILD_PROGRAM_FAILURE) in _cl_program* cv::ocl::ProgramFileCache::getOrBuildProgram(const cv::ocl::Context*, const cv::ocl::ProgramEntry*, const string&), file /home/mrqsun/opencv/opencv-2.4.13/modules/ocl/src/cl_programcache.cpp,
line 454
"
報錯解析:一般出現CL_BUILD_PROGRAM_FAILURE這種錯誤,是clBuildProgram失敗的意思,失敗的原因一般是存在語法錯誤,然後根據BUILD LOG的資訊,定位語法出錯的地方,然後進行修改。
opencl相關的巨集,在cl.h裡面定義的,cl.h一般在系統路徑include/CL下面。針對ocl模組,我們在列印一些狀態值除錯的時候,根據列印的巨集的值,取cl.h裡面找對應的狀態,然後確定走哪一個分支。
根據錯誤資訊定位,修改
sampler_t sampleri = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
為
const sampler_t sampleri = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
不再報錯。
總結:ocl模組的opencl下面是寫好的一些核函式,裡面有得可能存在語法錯誤,根據報錯與opencl的語法規則進行相應修改。
相關文章
- JavaCV與OpenCV的區別和使用中遇到的問題JavaOpenCV
- 解決在使用Amoeba遇到的問題
- 在騰訊雲上安裝mysql遇到的問題MySql
- Android中使用WebView遇到的問題總結:AndroidWebView
- OpenCV在Android平臺上的應用OpenCVAndroid
- Android studio遇到的一些小問題Android
- air在go的其他版本上執行可能遇到的問題AIGo
- 使用git遇到的問題Git
- ueditor使用遇到的問題
- 在kotlin中使用dagger2遇到的一個問題Kotlin
- 在安卓上使用OpenCV的指南 - kdnuggets安卓OpenCV
- 上傳App Store遇到的問題APP
- 在伺服器上安裝配置環境遇到的一些問題伺服器
- 在 Debian 64 位上安裝 wkhtmltopdf 時遇到的問題HTML
- Go mod 使用遇到的問題Go
- laravel使用中遇到的問題Laravel
- c++使用遇到的問題C++
- 使用 redisson 時遇到的問題Redis
- android 4.4/5.1上使用aar的問題Android
- Springboot使用avue拖動上傳遇到的問題Spring BootVue
- 除錯433M模組遇到的問題除錯
- Android List分部載入遇到的一些問題Android
- 一次上線遇到的DB2 dprop問題DB2
- 【OpenCV】OpenCV中GPU模組使用OpenCVGPU
- 在Centos和Docker上安裝STF 遇到的若干問題總結CentOSDocker
- 【MySQL】使用innobackup 2.4遇到的問題MySql
- OpenCV在Android中的整合與簡單使用OpenCVAndroid
- Python安裝cx_Oracle模組遇到的問題PythonOracle
- MUI在Android與IOS上的一些小問題以及一些框架的用法UIAndroidiOS框架
- react-native 在匯入android原生庫容易遇到的問題ReactAndroid
- oracle10g在RAW上建庫遇到的問題和解決方法Oracle
- 在釋出war包時遇到的問題
- [android]android自動化過程遇到的問題Android
- 使用CodeMirror外掛遇到的問題
- 使用git add 遇到的小問題Git
- Vue使用中遇到的程式碼問題Vue
- Linux ~ CentOS使用中遇到的問題LinuxCentOS
- 記錄使用Performance API遇到的問題ORMAPI