• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-145  評論-173  文章-70  trackbacks-0
             當程序需要脫離opencv的安裝環境是,靜態庫的創建就顯得重要了。首先筆者的opencv1.0安裝路徑在C:\Program Files\OpenCV,并且對opencv進行了配置。下面就進入正題吧。

                 一. 找到opencv源碼的一處錯誤:通過搜索關鍵字foreground_regions,發現在cvaux.h文件中,第1137行注釋沒有閉合,且有不明原因的亂碼,導致下一行定義的foreground_regions成為注釋的一部分,源文件原始代碼如下:
                CvMemStorage*   storage;     
            改為如下形式
                CvMemStorage*   storage;                    \
                CvSeq*          foreground_regions

                二. 在編譯過程中可能會碰到“streams.h 沒有發現”這樣的錯誤,這種問題是需要 DirectShow SDK 。具體的解決方法如下:

               

            1. 從 msdn.microsoft.com/directx/ 下載 DirectX,(文件很大,但是可以只下載部分)。如果不能正常工作,考慮一下 HighGUI 利用 VFW 或 MIL 來撲捉視頻序列。
            2. 帶樣例安裝 (TOGETHER WITH SAMPLES.)
            3. 打開項目 <DirectXSDKInstallFolder>\samples\C++\DirectShow\BaseClasses\baseclasses.{dsw|sln}. 如果沒有這個文件,要么是你沒有下載樣例,要么是路徑不對。
            4. 編譯建立 Release 和 Debug 版本
            5. 將產生的庫 (在 DirectX 9.x 中,分別叫 strmbase.lib 和 strmbasd.lib) 拷貝到目錄 <DirectXSDKInstallFolder>\lib 下。
            6. 在 Developer Studio 添加路徑:

              <DirectXSDKInstallFolder>\include
              <DirectXSDKInstallFolder>\samples\C++\DirectShow\BaseClasses

              到 includes' 搜索路徑中 (在 Tools->Options->Directories->Include files in case of Developer Studio 6.0)

              添加 <DirectXSDKInstallFolder>\lib 到庫搜索路徑中 (在 Tools->Options->Directories->Library files in case of Developer Studio 6.0)

              注意: 將上面增加的東東添加到最頂端,否則還會出現編譯或鏈接錯誤。因為 Developer Studio 6.0 包含了一些老版本的 DirectX 頭文件和庫文件,它們與新版本有沖突。

                 三. 進行靜態庫制作

             

                 1. 在C:\Program Files\OpenCV\_make中建立一個靜態庫工程(現在以highguil.lib為例,因為這個靜態庫容易出現問題)

                 2. 把C:\Program Files\OpenCV\otherlibs\highgui中的文件復制到創建的highguil文件下。在highuil工程中添加如下文件,這里有個關鍵的地方。不要把highguil下的所有文件都添加到工程中(這點很重要),里面的一些文件在編譯中會因為找不到頭文件而失敗。如cvcap_xine.cpp就會缺少xine.h而報錯等。經過筆者的反復測試,得到如下幾個需要添加到工程的文件:


             3. 添加完工程文件后就得進行設置了(這里調到release版本,debug版本類似)

                  (1)設置->c/c++->Code Generation 中的Use run-time library中 選擇Multithreaded DLL;

                  (2)設置->c/c++->預處理器中的預處理器定義中添加:,CVAPI_EXPORTS 附加包含路徑中加:
            ..\..\otherlibs\highgui

                  (3)設置->c/c++->Library中輸出文件名添加:..\..\lib\highguiL.lib

                  4. 進行編譯,這樣highguil.lib就做成了。同樣的道理可以做成cvl.lib, cvcaml.lib,cvauxl.lib, cvcorel.lib 這樣對于的靜態鏈接庫就完成了!

                四. 獨立程序的運行。對獨立程序設置下環境如下:

                1. 設置->常規->Microsoft基礎類(M):使用MFC作為靜態鏈接庫
                2. 設置->c/c++->Code Generation 中的Use run-time library中 選擇Multithreaded DLL
                3. 設置->c/c++->預處理器中的預處理器定義中添加:,CVAPI_EXPORTS附加包含路徑中加:
            C:\Program Files\OpenCV\cxcore\include,C:\Program Files\OpenCV\cvaux\include,C:\Program Files\OpenCV\cv\include,C:\Program Files\OpenCV\otherlibs\highgui
                4. 設置->連接中的對象/庫模塊加入:
            kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib cxcorel.lib cvl.lib highguil.lib cvcamL.lib

                5. 編譯運行。這樣你的程序就可以脫離OPENCV環境而獨立運行了。

                 http://blog.sina.com.cn/s/blog_52996aea0100amtj.html
            posted on 2009-12-13 14:52 deercoder 閱讀(4083) 評論(0)  編輯 收藏 引用 所屬分類: OpenCV / OpenGL
            www.久久精品| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品久久久香蕉| 久久久久久精品成人免费图片| 中文国产成人精品久久不卡| 一本久久a久久精品综合香蕉| 久久亚洲精品国产精品| 丁香五月综合久久激情| 久久精品成人欧美大片| 久久综合综合久久97色| 久久久一本精品99久久精品88| 精品久久久久久久无码| 精品综合久久久久久97超人| 久久久久亚洲AV成人网人人网站| 久久精品国产亚洲av麻豆蜜芽| 精品久久久久久无码中文字幕一区| 国产精品狼人久久久久影院| 97精品依人久久久大香线蕉97| 精品久久久久久久中文字幕| 亚洲va久久久噜噜噜久久男同 | 少妇久久久久久被弄到高潮 | 奇米影视7777久久精品人人爽| 91视频国产91久久久| 亚洲国产欧美国产综合久久| 色综合久久天天综线观看| 久久99精品国产麻豆婷婷| 91精品国产91久久久久福利| 久久精品国产亚洲AV影院| 国产日韩欧美久久| 亚洲一本综合久久| 日本福利片国产午夜久久| 国产精品女同久久久久电影院| 国产美女亚洲精品久久久综合| 欧美日韩精品久久久久| 韩国三级中文字幕hd久久精品 | 久久国产精品成人免费| 久久精品国产亚洲AV电影| 久久午夜无码鲁丝片秋霞| 久久精品无码一区二区app| 久久天天躁狠狠躁夜夜不卡| 久久99精品久久久久久秒播|