cmake编译安装OpenCV

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wxcdzhangping/article/details/78002392

步骤过程:下载OpenCV源码包opencv-3.2.0.zip

解压后,查看文件夹opencv-3.2.0/3rdparty/ffmpeg



---cmake结束之后---在ffmpeg文件夹下,有如下内容:


该文件夹下没有ffmpeg.dll等动态链接库,在用cmake编译源码时,会下载ffmpeg.dll等库,所有要保持网络通畅。

——————configure过程

下载opencv_ffmpeg.dll的过程


下载完之后,安装




这时会在opencv的源码包里发现多了三个文件opencv_ffmpeg.dll opencv_ffmpeg_64.dl 


在下载另一条的时候会失败的,错误提醒如下:




编译OpenCV3.2.0时,ffmpeg或ippcv下载不成功的解决方案可以通过手动配置来解决这类问题,当然也可以直接配置之后再编译,

下载地址为 opencv/opencv_3rdparty ,编译完成后结果为:






下载


解压文件夹下后,会看到以下文件夹,看到ippicv:



在文件夹ippicv下,会有分别在linux 、mac、win系统的三个压缩文件包,如下:


然后解压win的zip下:


然后将解压的该文件夹,存放在\ippicv,首先新建一个unpack的文件夹,


然后,将ippicv_win文件夹复制到unpack文件夹下。

然后,编辑downloader.cmake(首先将复制一份),如下:

,然后编辑downloader.cmake,如下:

#
# The script downloads ICV package
#
# On return this will define:
# OPENCV_ICV_PATH - path to unpacked downloaded package
#

function(_icv_downloader)
  # Commit SHA in the opencv_3rdparty repo
  set(IPPICV_BINARIES_COMMIT "81a676001ca8075ada498583e4166079e5744668")
  # Define actual ICV versions
  if(APPLE)
    set(OPENCV_ICV_PACKAGE_NAME "ippicv_macosx_20151201.tgz")
    set(OPENCV_ICV_PACKAGE_HASH "4ff1fde9a7cfdfe7250bfcd8334e0f2f")
    set(OPENCV_ICV_PLATFORM "macosx")
    set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_osx")
  elseif(UNIX)
    if(ANDROID AND NOT (ANDROID_ABI STREQUAL x86 OR ANDROID_ABI STREQUAL x86_64))
      return()
    endif()
    set(OPENCV_ICV_PACKAGE_NAME "ippicv_linux_20151201.tgz")
    set(OPENCV_ICV_PACKAGE_HASH "808b791a6eac9ed78d32a7666804320e")
    set(OPENCV_ICV_PLATFORM "linux")
    set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_lnx")
  elseif(WIN32 AND NOT ARM)
    set(OPENCV_ICV_PACKAGE_NAME "ippicv_windows_20151201.zip")
    set(OPENCV_ICV_PACKAGE_HASH "04e81ce5d0e329c3fbc606ae32cad44d")
    set(OPENCV_ICV_PLATFORM "windows")
    set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_win")
  else()
    return() # Not supported
  endif()
  set(OPENCV_ICV_UNPACK_PATH "${CMAKE_CURRENT_LIST_DIR}/unpack")
  set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}")

  message(STATUS "ICV: Package successfully downloaded")
  set(OPENCV_ICV_PATH "${OPENCV_ICV_PATH}" PARENT_SCOPE)
endfunction()

_icv_downloader()
,然后重新点击configure,

,然后再点击 "Configure",红色部分,全部成为白色部分,


,然后点击Generate按钮:


,生成完成后,在cmake中的指定文件夹下,有如下:


,打开上述指定的文件夹,有:


,利用visual studio 2015打开上述的.sln解决方案,然后,将默认的Debug模式,改为Release模式,


,然后点击"Build"->"Build Solution"(生成--生成解决方案),大概等几分钟后,结果变为:


然后,打开右侧的解决方案资源管理器,再点击CMakeTarget-INSTALL:右键选择“仅用于项目-仅生成INSTALL”,


,然后打开生成的目录:


发现在文件夹下install下,打开该文件夹,会发现有一个x86的文件夹,



猜你喜欢

转载自blog.csdn.net/wxcdzhangping/article/details/78002392