故障排除#
執行程式時擲回例外狀況。例外狀況訊息:
BaslerGTC/Basler/GenTL_Producer_for_Basler_blaze_101_camera could not be created.
原因:找不到由 pylon Supplementary Package for blaze 所提供的 blaze 相機 GenTL Producer。
解決方案: 請確保 GENICAM_GENTL64_PATH 環境變數設定正確。該變數必須包含以下資料夾:
Windows: <PYLON_ROOT>/Runtime/x64
Linux: <PYLON_ROOT>/lib/gentlproducer/gtl
You can use the pylon-setup-env.sh script, located in the <PYLON_ROOT>/bin directory. To set up the environment for a pylon installation in /opt/pylon, execute:
If you want the environment to be persistent, you can add
to ~/.bashrcIf you do not use this script, you will have to set up your environment as follows:
CMake 產生命多警告。
原因:根據 PCL 的版本而定,PCL 的 CMake 組態檔會造成許多警告。
解決方案:為了建置和執行 Basler blaze 範例,通常可以忽略這些警告。
透過傳遞 -Wno-dev 命令列選項給 CMake,可以減少警告數量。
僅限 Windows:由於缺少 opencv_world*.dll 檔案,執行使用 OpenCV 的範例失敗。
原因: OpenCV 的路徑不在 PATH 環境變數中。
解決方案: 必須將 OpenCV 安裝路徑新增至 PATH 環境變數中。 將 OpenCV 新增至 PATH 環境變數.
僅限 Windows:由於缺少 OpenNI2.dll 檔案,執行使用 PCL 的範例失敗。
原因:PCL All-in-One 安裝程式會將 OpenNI2.dll 安裝到不在 PATH 中的位置。
解決方案: PCL 安裝程式會將 DLL 安裝到 %ProgramFiles%\OpenNI2\Redist 資料夾。請將此資料夾新增至您的 PATH 環境變數,或將 OpenNI2.dll 複製到 PCL 二進位檔所在的資料夾,例如 %ProgamFiles%\PCL 1.11.1\bin.
僅限 Windows:使用 PCL 的範例在 CMAKE_BUILD_TYPE 且 RelWithDebInfo時建置失敗,或者 CMAKE_BUILD_TYPE 設為時,參數未正確呈現為灰色 RelWithDebInfo 建置的範例在執行時當機。
原因: PCL 對 RelWithDebInfo 組態的支援已損壞。它沒有連結 PCL 用於視覺化任務的 VTK 函式庫的 Release 版本,而是連結了 Debug 版本。這會導致同時參考 Microsoft C++ 執行階段函式庫之 Debug 與 Release 版本的混合函式庫,因而導致連結器無法連結可執行檔,或在執行階段造成當機。
解決方案 1: 選擇 Release 而不是 RelWithDebInfo.
注意
Visual Studio CMake 支援會在建立 RelWithDebInfo 建置組態時,自動將 CMake 建置類型設為 Release 。您必須手動編輯 CMakeSettings.json 檔案,並將 configurationType 欄位的值從 RelWithDebInfo 設定為 Release.
解決方案 2:
- 建立
%ProgramFiles%\PCL x.y.z\3rdParty\VTK\lib\cmake\vtk-x.y\VTK-Targets-debug.cmake檔案中。 - 的複本。
VTK-Targets-relwithdebinfo.cmake. - 將該複本重新命名為
RELEASE透過RELWITHDEBINFO. - 清除 CMake 快取並重新產生快取。
顯示畫面播放速率偏低。
原因:在偵錯模式下,編譯器產生的程式碼未包含最佳化。
解決方案:請確保應用程式是以 release 模式建置。
僅限 Windows:連結器回報混用 32 位元和 64 位元程式庫的錯誤。
原因:連結應用程式時,所有二進位檔必須全部為 32 位元或全部為 64 位元。無法在單一執行檔中混用 32 位元和 64 位元程式庫。
解決方案:產生 Visual Studio 解決方案檔案時,請確保目標平台 (x86 對應 x64) 與建置 OpenCV 和 PCL 程式庫所使用的平台一致。
應用程式當機或遭到強制結束後,重新啟動應用程式時會出現 device is already connected 錯誤訊息。
原因:當應用程式異常終止時,將無法再關閉與相機的連線。相機必須等到 GigE Vision 心跳逾時 (heartbeat timeout) 過期後,才會接受新的連線。
通常,如果您是在偵錯工具下執行應用程式,且使用的是 pylon 7.0 或更舊版本,就會發生這種情況。較新版本的 pylon 會在程式終止時自動關閉相機連線。
解決方案:如果您增加了心跳逾時時間,或如果您使用的是 pylon 7.0 或更舊版本並在偵錯工具下執行應用程式,則必須將相機重新上電,或將相機從網路中斷連線短暫的時間。
如需如何控制 GigE Vision 心跳逾時的詳細資訊,請參閱偵錯 C++ 應用程式與控制 GigE Vision 心跳 (Debugging C++ Applications and Controlling the GigE Vision Heartbeat)或偵錯 .NET 應用程式與控制 GigE Vision 心跳 (Debugging .NET Applications and Controlling the GigE Vision Heartbeat)章節。