VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行

摘要:
我的毕业设计是图像处理,它是用VS2010+OpenCV、C++和MFC完成的。准备材料:VS2010+OpenCV2.4.10软件安装。将下载的OpenCV解压缩到D:OpenCV。打开VS2010,文件-˃新建-˃项目-˃MFC应用程序,并创建一个测试项目。应该注意,64位只能在64位机器上运行。您可以找到Release-˃Test。exe,复制它,然后在其他计算机上运行。

我的毕业设计做的是图像处理,是用VS2010+OpenCV完成的,C++&MFC。(我的是64位的,所以前后一致,全部选择都是64位的,当然也可以是32位的,前后要一致)

项目做完之后,导师建议能不能做成可执行文件,在其他没有安装VS和OpenCV的机子上直接运行,因为之前没有考虑过这个问题,所以当时只是在自己本地可以运行就行,现在要重新考虑这个问题,中间遇到了很多问题,花费了一个下午和一个晚上的时间,看了很多相关的博客,终于解决了这个问题,也希望对遇到相关问题的人有所帮助。

准备材料 :VS2010+OpenCV 2.4.10

(1)安装软件。安装VS2010。将下载的OpenCV解压到D:opencv。

(2)配置环境变量。计算机>属性>高级系统设置>环境变量>新建,新建一个用户变量,如变量名:Path,变量值:D:opencvuildx64vc10in。

(3)接下来就是我们正式的工作内容了。

  打开VS2010,文件-》新建-》项目-》MFC应用程序,建立Test项目。点击确定,进入MFC应用程序向导,点击下一步,勾选“基于对话框”“在静态库中使用MFC”,取消“使用 Unicode库 ”。点击完成。

 

VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行第1张

(4)右键Test,打开属性。

debug模式下:

VC++目录->包含目录,编辑,加入D:opencvuildinclude

                                             D:opencvuildincludeopencv

                                              D:opencvuildincludeopencv2

VC++目录->库目录,编辑,加入D:opencvuildx64vc10staticlib(这个很重要)

C/C++->代码生成->运行库,改成“多线程调试(/MTd)”

链接器->输入->附加依赖项,编辑加入下列项:

vfw32.lib
comctl32.lib
zlib.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
IlmImf.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_features2d2410d.lib
opencv_core2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib

Release模式下:

VC++目录->包含目录,编辑,加入D:opencvuildinclude

                                             D:opencvuildincludeopencv

                                              D:opencvuildincludeopencv2

VC++目录->库目录,编辑,加入D:opencvuildx64vc10staticlib(这个很重要)

C/C++->代码生成->运行库,改成“多线程(/MT)”

链接器->输入->附加依赖项,编辑加入下列项:

vfw32.lib
comctl32.lib
zlib.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
IlmImf.lib
opencv_calib3d2410.lib     (注意,没有d)
opencv_contrib2410.lib
opencv_features2d2410.lib
opencv_core2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib
opencv_nonfree2410.lib
opencv_objdetect2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_videostab2410.lib

点击“应用”,“确定”。

(5)如果大家全部用的是32位,现在就结束了,但是我的全部是64位的,所以还需要新建X64平台。需要注意一点,如何是64位的,只能运行在64位机子上。

VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行第2张

(6) 然后就全部结束了,大家可以尝试着编写代码了。可以在项目里面找到Release->Test.exe,拷贝出来,就可以在其他机子上运行了。如何大家还有什么问题,欢迎交流。 

免责声明:文章转载自《VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇chrome 向群组中添加标签页idea通过maven打jar包不成功或无法加载主类或打成功也找不到jar包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【python-opencv】图像几何变换

1、变换 OpenCV提供了两个转换函数cv.warpAffine和cv.warpPerspective,您可以使用它们进行各种转换。cv.warpAffine采用2x3转换矩阵,而cv.warpPerspective采用3x3转换矩阵作为输入。 importcv2 as cv from google.colab.patches importcv2_ims...

【Python】opencv显示图像

import cv2 img = cv2.imread("lena.jpg") cv2.namedWindow("Image") cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows()...

在Windows上采用Cmake+Visual Studio编译并使用静态opencv库并发布成裸机可执行程序

在Windows上采用Cmake + Visual Studio编译并使用静态opencv库并打包发布成裸机可执行程序 环境:Windows 7 64bit 工具 Cmake-3.11.1 确保是64位 确保安装了GUI Visual Studio 2015 确保是64位 确保采用vc14作为编译器(支持c++11标准部分语法) 原料:Op...

python利用opencv去除水印方法

OpenCV(Open Source Computer Vision Library)是一个跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法 在python中可以利用opencv来去除水印 opencv安装 window10 OpenCV 3:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv...

基于java的OpenCV安装和配置

目录 OpenCV简介 OpenCV下载安装 eclipse里引用jar包和配置 OpenCV简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLA...

配置opencv cmake

第一种使用 find_package的方法示例代码如下:# 声明要求的 cmake 最低版本cmake_minimum_required( VERSION 2.8 ) # 声明一个 cmake 工程project( pro ) # 设置编译模式set( CMAKE_BUILD_TYPE "Debug" ) #添加OPENCV库#指定OpenCV版本,代码如...