海思移植opencv+車輛檢測

      網友投稿 818 2022-05-29

      1.確保ubuntu能上網

      2.安裝cmake

      代碼: 全選

      sudo apt-get install cmake-gui

      3.下載OpenCV2.4.9 Linux版源碼,不要用最新的3.0.0

      http://opencv.org/downloads.html

      4.解壓opencv源碼

      代碼: 全選

      unzip opencv-2.4.9.zip

      5.創建一個build目錄用于編譯和一個output目錄用于存放編譯完成后的海思平臺的opencv:

      代碼: 全選

      xlab@xlab-dev:~/zhouhua/opencv/opencv-2.4.9$ ls

      3rdparty? ?? ???LICENSE? ? apps? ?data??include? ? modules? ? samples

      CMakeLists.txt??README.md??cmake??doc? ?index.rst??platforms

      xlab@xlab-dev:~/zhouhua/opencv/opencv-2.4.9$ cd ..

      xlab@xlab-dev:~/zhouhua/opencv$ ls

      build??opencv-2.4.9??opencv-2.4.9.zip??output

      xlab@xlab-dev:~/zhouhua/opencv$ mkdir build

      xlab@xlab-dev:~/zhouhua/opencv$ mkdir output

      6.執行cmake-gui

      代碼: 全選

      xlab@xlab-dev:~/zhouhua/opencv/opencv-2.4.9$ cmake-gui

      點擊Browse Source選擇~/zhouhua/opencv/opencv-2.4.9

      點擊Browse Build選擇~/zhouhua/opencv/build

      然后點擊Configure

      此時出現的對話框選擇最后一項:Specify options for cross-compiling

      下一步

      Operating System填寫arm-hisiv100nptl-linux

      C填寫arm-hisiv100nptl-linux-gcc

      C++填寫arm-hisiv100nptl-linux-g++

      下一步,然后等待Configuration done

      然后在出現的列表中修改CMAKE_INSTALL_PREFIX為~/zhouhua/opencv/output

      然后點擊Generate

      等待Generation done

      即可關閉cmake軟件。

      7.進入build目錄執行make

      代碼: 全選

      xlab@xlab-dev:~/zhouhua/opencv/build$ make

      提示出錯:

      代碼: 全選

      ../../lib/libopencv_core.so: undefined reference to `pthread_once'

      ../../lib/libopencv_core.so: undefined reference to `pthread_spin_lock'

      ../../lib/libopencv_core.so: undefined reference to `pthread_spin_unlock'

      ../../lib/libopencv_core.so: undefined reference to `pthread_spin_init'

      ../../lib/libopencv_core.so: undefined reference to `pthread_spin_trylock'

      ../../lib/libopencv_core.so: undefined reference to `pthread_spin_destroy'

      修改CMakeCache.txt大約200行處

      //Flags used by the linker.

      CMAKE_EXE_LINKER_FLAGS:STRING= -lpthread -lrt

      繼續make

      可能出現如下錯誤

      代碼: 全選

      CMake Error at /home/xlab/zhouhua/opencv/opencv-2.4.9/cmake/cl2cpp.cmake:50 (string):

      string does not recognize sub-command MD5

      make[2]: *** [modules/ocl/opencl_kernels.cpp] Error 1

      make[1]: *** [modules/ocl/CMakeFiles/opencv_ocl.dir/all] Error 2

      make: *** [all] Error 2

      刪除/home/xlab/zhouhua/opencv/opencv-2.4.9/cmake/cl2cpp.cmake的第50行的內容即可。

      繼續make

      完成后執行make install

      代碼: 全選

      xlab@xlab-dev:~/zhouhua/opencv/output$ ls

      LICENSE??bin??include??lib??share

      8.得到了include和lib目錄就可以編寫程序了,來試試最常用的車輛檢測吧

      海思移植opencv+車輛檢測

      編寫如下代碼

      代碼: 全選

      [cpp] view plain copy

      #include"cv.h"

      #include"highgui.h"

      #include"stdio.h"

      /******************fortime?mesurement*************************/

      #include

      structtimeval?tpstart,tpend;

      unsigned?longtimeuses;

      voidtimeRec()

      {

      gettimeofday(&tpstart,0);

      }

      int?timeRep()

      {

      gettimeofday(&tpend,0);

      timeuses=(tpend.tv_sec-tpstart.tv_sec)*1000000+tpend.tv_usec-tpstart.tv_usec;

      printf("use?time:%uus\n",timeuses);

      return?timeuses;

      }

      /********************end**************************************/

      int?main(intargc,?char*?argv[])

      {

      IplImage*?img=?NULL;

      CvMemStorage*?storage?=cvCreateMemStorage(0);

      CvHaarClassifierCascade*cascade?=?cvLoadHaarClassifierCascade("./model.xml",cvSize(24,24));

      //CvHaarClassifierCascade*?cascade?=(CvHaarClassifierCascade*)cvLoad("./lbpcascade_frontalface.xml",?0,0,?0);

      CvSeq*?faces;

      //加載圖像

      img?=?cvLoadImage(argv[1],?0);

      printf("img?w=%d?h=%d\n",img->width,?img->height);

      //檢測并計時

      timeRec();

      faces?=?cvHaarDetectObjects(img,cascade,??storage,?1.1,?3,?0,cvSize(24,24)?);

      timeRep();

      if?(faces->total?==?0){

      printf("no?face!\n");

      }

      printf("car=?%d\n",?faces->total);

      //釋放內存

      cvReleaseImage(&img);

      printf("car?detected!?car.jpg!\n");

      }

      編譯成功,然后拷貝車輛分類器文件過來。

      再找個圖片過來,我這里就用car.jpg了。

      將/root/jiang/OpenCV/output/lib下的libopencv_imgproc.so、libopencv_objdetect.so、libopencv_highgui.so和libopencv_core.so復制到u盤,將u盤中這4個動態庫做軟連接庫到/lib目錄下。

      代碼: 全選

      ln -s /mnt/udisk/libopencv_imgproc.so /lib/libopencv_imgproc.so

      ln -s /mnt/udisk/libopencv_objdetect.so /lib/libopencv_objdetect.so

      ln -s /mnt/udisk/libopencv_highgui.so /lib/libopencv_highgui.so

      ln -s /mnt/udisk/libopencv_core.so /lib/libopencv_core.so

      備注:

      刪除軟鏈接:

      rm -rf ?/lib/libopencv_core.so 注意不是rm -rf ?/lib/libopencv_core.so/

      然后到car所在的/mnt/udisk目錄去執行即可:

      # ./car car.jpg

      img w=686h=398

      use time:18323188us

      car = 5

      cardetected! in car.jpg!

      OpenCV 交通智能體

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:鯤鵬服務器上kaldi 運行voxforge例子
      下一篇:anaconda安裝配置教程
      相關文章
      亚洲色欲www综合网| 亚洲午夜免费视频| 亚洲乱码在线播放| 亚洲综合一区二区| 亚洲av日韩av无码| 亚洲av永久无码精品网站| 久久精品国产亚洲综合色| 国产亚洲精品拍拍拍拍拍| 国产成人亚洲综合无码| 日韩亚洲国产综合久久久| 国产精品自拍亚洲| 亚洲av综合日韩| 亚洲av日韩av永久无码电影| 亚洲一区二区三区写真| 学生妹亚洲一区二区| 亚洲第一区二区快射影院| 亚洲综合校园春色| 亚洲综合激情五月丁香六月| 中文日韩亚洲欧美制服| 亚洲精品永久在线观看| 国产成人精品久久亚洲高清不卡 | 精品亚洲综合久久中文字幕| 日韩va亚洲va欧洲va国产| 久久亚洲精品视频| 亚洲AV无码一区东京热| 亚洲韩国—中文字幕| 亚洲日产2021三区| 亚洲va在线va天堂成人| 亚洲精品又粗又大又爽A片| 国内成人精品亚洲日本语音| 亚洲熟女乱综合一区二区| 中文字幕精品亚洲无线码一区| 国产亚洲精品精华液| 亚洲AV福利天堂一区二区三| 亚洲综合在线成人一区| tom影院亚洲国产一区二区| 亚洲精华国产精华精华液| 亚洲国产精品无码久久九九| 亚洲日韩精品射精日| 亚洲一区二区三区四区在线观看| 亚洲人成电影在线观看网|