123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- @ECHO OFF
- SETLOCAL
- SET SCRIPT_DIR=%~dp0
- SET "OPENCV_SETUPVARS_SCRIPT=setup_vars_opencv4.cmd"
- SET "BUILD_DIR=%SCRIPT_DIR%\..\..\build"
- IF NOT EXIST "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
- :: Winpack DLDT
- SET "BUILD_DIR=%SCRIPT_DIR%\..\..\..\build"
- )
- IF NOT EXIST "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%" (
- ECHO ERROR: OpenCV Winpack installation is required
- pause
- exit
- )
- :: normalize path
- for %%i in ("%PACKAGE_BUILD_DIR%") do SET "PACKAGE_BUILD_DIR=%%~fi"
- :: Detect Python binary
- python -V 2>nul
- IF %ERRORLEVEL% EQU 0 (
- SET PYTHON=python
- GOTO :PYTHON_FOUND
- )
- CALL :QUERY_PYTHON 3.10
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.9
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.8
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.7
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.6
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.5
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 3.4
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- CALL :QUERY_PYTHON 2.7
- IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND
- GOTO :PYTHON_NOT_FOUND
- :QUERY_PYTHON
- SETLOCAL
- SET PY_VERSION=%1
- SET PYTHON_DIR=
- CALL :regquery "HKCU\SOFTWARE\Python\PythonCore\%PY_VERSION%\InstallPath" PYTHON_DIR
- IF EXIST "%PYTHON_DIR%\python.exe" (
- SET "PYTHON=%PYTHON_DIR%\python.exe"
- GOTO :QUERY_PYTHON_FOUND
- )
- CALL :regquery "HKLM\SOFTWARE\Python\PythonCore\%PY_VERSION%\InstallPath" PYTHON_DIR
- IF EXIST "%PYTHON_DIR%\python.exe" (
- SET "PYTHON=%PYTHON_DIR%\python.exe"
- GOTO :QUERY_PYTHON_FOUND
- )
- ::echo Python %PY_VERSION% is not detected
- ENDLOCAL
- EXIT /B 1
- :QUERY_PYTHON_FOUND
- ECHO Found Python %PY_VERSION% from Windows Registry: %PYTHON%
- ENDLOCAL & SET PYTHON=%PYTHON%
- EXIT /B 0
- IF exist C:\Python27-x64\python.exe (
- SET PYTHON=C:\Python27-x64\python.exe
- GOTO :PYTHON_FOUND
- )
- IF exist C:\Python27\python.exe (
- SET PYTHON=C:\Python27\python.exe
- GOTO :PYTHON_FOUND
- )
- :PYTHON_NOT_FOUND
- ECHO ERROR: Python not found
- IF NOT DEFINED OPENCV_BATCH_MODE ( pause )
- EXIT /B
- :PYTHON_FOUND
- ECHO Using Python: %PYTHON%
- :: Don't generate unnecessary .pyc cache files
- SET PYTHONDONTWRITEBYTECODE=1
- IF [%1]==[] goto rundemo
- set SRC_FILENAME=%~dpnx1
- echo SRC_FILENAME=%SRC_FILENAME%
- call :dirname "%SRC_FILENAME%" SRC_DIR
- call :dirname "%PYTHON%" PYTHON_DIR
- PUSHD %SRC_DIR%
- CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
- :: repair SCRIPT_DIR
- SET "SCRIPT_DIR=%~dp0"
- ECHO Run: %*
- %PYTHON% %*
- SET result=%errorlevel%
- IF %result% NEQ 0 (
- IF NOT DEFINED OPENCV_BATCH_MODE (
- SET "PATH=%PYTHON_DIR%;%PATH%"
- echo ================================================================================
- echo ** Type 'python sample_name.py' to run sample
- echo ** Type 'exit' to exit from interactive shell and open the build directory
- echo ================================================================================
- cmd /k echo Current directory: %CD%
- )
- )
- POPD
- EXIT /B %result%
- :rundemo
- PUSHD "%SCRIPT_DIR%\python"
- CALL "%BUILD_DIR%\%OPENCV_SETUPVARS_SCRIPT%"
- :: repair SCRIPT_DIR
- SET "SCRIPT_DIR=%~dp0"
- %PYTHON% demo.py
- SET result=%errorlevel%
- IF %result% NEQ 0 (
- IF NOT DEFINED OPENCV_BATCH_MODE ( pause )
- )
- POPD
- EXIT /B %result%
- :dirname file resultVar
- setlocal
- set _dir=%~dp1
- set _dir=%_dir:~0,-1%
- endlocal & set %2=%_dir%
- EXIT /B 0
- :regquery name resultVar
- SETLOCAL
- FOR /F "tokens=*" %%A IN ('REG QUERY "%1" /reg:64 /ve 2^>NUL ^| FIND "REG_SZ"') DO SET _val=%%A
- IF "x%_val%x"=="xx" EXIT /B 1
- SET _val=%_val:*REG_SZ=%
- FOR /F "tokens=*" %%A IN ("%_val%") DO SET _val=%%A
- ENDLOCAL & SET %2=%_val%
- EXIT /B 0
|