在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
- 除錯433M模組遇到的問題除錯
- Android中使用WebView遇到的問題總結:AndroidWebView
- Python安裝cx_Oracle模組遇到的問題PythonOracle
- springboot多模組專案搭建遇到的問題記錄Spring Boot
- 在騰訊雲上安裝mysql遇到的問題MySql
- Springboot使用avue拖動上傳遇到的問題Spring BootVue
- [20240309]在windwos下使用sed遇到的問題.txt
- 使用git遇到的問題Git
- air在go的其他版本上執行可能遇到的問題AIGo
- 上線後遇到一個很奇怪的問題
- react-native 在匯入android原生庫容易遇到的問題ReactAndroid
- 在 Debian 64 位上安裝 wkhtmltopdf 時遇到的問題HTML
- javafx jlink 遇到的非模組化的依賴打包報錯“模組異常”的問題和處理Java
- 在安卓上使用OpenCV的指南 - kdnuggets安卓OpenCV
- laravel使用中遇到的問題Laravel
- Go mod 使用遇到的問題Go
- c++使用遇到的問題C++
- 遇到問題,需要開發角色許可權模組
- MUI在Android與IOS上的一些小問題以及一些框架的用法UIAndroidiOS框架
- VS2019配置Opencv遇到的部分問題及解決方案OpenCV
- 使用javap -v 命令遇到的問題Java
- 使用CodeMirror外掛遇到的問題
- PaddleOCR 安裝使用遇到的問題
- 使用git add 遇到的小問題Git
- 一次上線遇到的DB2 dprop問題DB2
- 在Centos和Docker上安裝STF 遇到的若干問題總結CentOSDocker
- 工作遇到的問題小記(一)
- glom模組的使用(一)
- Vue使用中遇到的程式碼問題Vue
- 使用Hibernate、JPA、Lombok遇到的有趣問題Lombok
- xxl-job使用遇到的問題(二)
- ForkJoinPool在生產環境中使用遇到的一個問題
- 關於ApiCloud的Superwebview在androidstudio中整合微信支付模組,提示模組未繫結的問題APICloudWebViewAndroid
- 關於ApiCloud的Superwebview在androidstudio中整合微信支付模組,提示模組未繫結的問題...APICloudWebViewAndroid
- 使用springboot中的springdatajpa寫一個demo遇到一些問題Spring Boot
- linux遇到的問題Linux
- Vagrant 遇到的問題
- Homestead 遇到的問題