opencv中stitching_detail的运行

这个拼图并非自带的直接使用sources中的代码。而是把必要的内容放到工程中,改造成自己的图像拼接。参考博文:http://www.tuicool.com/articles/fMbUfaF

该篇博文总体上来讲,很好的指导了思路,但是在尝试的过程中屡次碰壁。所以现在就来把整个搭建过程再来复述一遍。

希望有那么一点帮助。

//前提先把opencv跑通,也就是上一篇随笔的内容。上一篇从体来讲还可以写的,主要是因为原博文非常详尽,所以我在写的时候就把我这里需要怎么跑,比较清楚的写了一下。

这篇真的是跑得我脑袋冒泡却也没跑成功,所以发个博来记述一下。

首先创建工程:

原文中的描述可以自己看一下。还是很好的

“新建工程,将H:opencvsourcesmodulesstitching的文件夹中的include和src复制到工程文件夹中,将samplecpp中的stitching_detailed.cpp也复制到工程文件夹中。”

—— http://www.tuicool.com/articles/fMbUfaF

注意下这段话的描述:反复看了很久。我还复制粘贴过,简直醉了,可能是还是不熟悉vs的环境。这个句话的正确步骤是:

1、先去opencv目录下面。

1选中include src目录。

2)Ctrl+C完成复制。

3)到vs环境中

点到这个工程目录里面。左键单击一下这个tryMosic这个工程

然后Ctrl+V

然后她会自动帮我们把头文件和cpp文件分开放好。

2、基本环境的问题。这也就是我们需要用到上一篇文章——配置的原因。

看看问题在哪里:

随便单击一个刚刚复制进来的.hpp 或者.cpp文件。

就发现报了好多红。同eclipse里面一样一片一片的爆红就是没有导包嘛~,这里面我们是没有导入必要的类库。

解决:

项目->属性->VC++目录->包含目录->

依然是新建。

补上三个

包含目录 下移两行 到库目录中进行修改

链接器输入部分:

opencv_ml249d.lib

opencv_calib3d249d.lib

opencv_contrib249d.lib 

opencv_core249d.lib 

opencv_features2d249d.lib 

opencv_flann249d.lib 

opencv_gpu249d.lib 

opencv_highgui249d.lib 

opencv_imgproc249d.lib 

opencv_legacy249d.lib 

opencv_objdetect249d.lib 

opencv_ts249d.lib 

opencv_video249d.lib 

opencv_nonfree249d.lib 

opencv_ocl249d.lib 

opencv_photo249d.lib 

opencv_stitching249d.lib 

opencv_superres249d.lib 

opencv_videostab249d.lib 

opencv_objdetect249.lib 

opencv_ts249.lib 

opencv_video249.lib 

opencv_nonfree249.lib 

opencv_ocl249.lib 

opencv_photo249.lib 

opencv_stitching249.lib 

opencv_superres249.lib 

opencv_videostab249.lib 

opencv_calib3d249.lib 

opencv_contrib249.lib 

opencv_core249.lib 

opencv_features2d249.lib 

opencv_flann249.lib 

opencv_gpu249.lib 

opencv_highgui249.lib 

opencv_imgproc249.lib 

opencv_legacy249.lib 

opencv_ml249.lib

复制这一堆。 

然后运行。 

找不到: 

gcgraph.hpp

就是缺少目录的事情。 

这样我们只要找到路径就可以了。这个路径确实比较难找,有需要的话我可以帮助找一下。但是其实也并不难,最重要的是相信自己可以解决这很重要。

现加上我们看看能不能跑通。<插曲>之所以加上这个目录是因为:

precomp.hpp 里面include的目录除了<> 系统目录,都是当前路径下的文件,而他们都在包含目录里面进行的添加,所以如法炮制,加上了opencv里面的这个头文件。然后把程序找到这个目录。

运行

这个就是怎么也跑不出来了.

所以拿上一版试出来的,来展示这个成果:

那个时候的名字还叫做testmosic

生成这样一个文件:

插曲:

出现问题

1>------ 已启动生成:  项目: trymosic, 配置: Debug Win32 ------

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

1>F:code4vs rymosicDebug rymosic.exe : fatal error LNK1120: 1 个无法解析的外部命令

========== 生成:  成功 个,失败 个,最新 个,跳过 个 ==========

根据度娘教程:

http://jingyan.baidu.com/article/d621e8da0d7c022864913f40.html

改成:

导致问题生了小问题:

1>------ 已启动生成:  项目: trymosic, 配置: Debug Win32 ------

1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

1>F:code4vs rymosicDebug rymosic.exe : fatal error LNK1120: 1 个无法解析的外部命令

========== 生成:  成功 个,失败 个,最新 个,跳过 个 ==========

度娘后的结果是要我再改回去。。。

蒙蔽了。。。

这程序本就没入口啊~~~,需要我们生成一个:

控制台应用程序。

就是理论上,插曲这部分出现之前,程序应该是编译通过的。


经过一番努力发现就是没有函数入口,如果发现反复要求变更控制台跟窗口,那么说明函数真的缺少入口。所以现在想到的办法就是重新提取一下opencv。再做一次尝试

原文地址:https://www.cnblogs.com/letben/p/5279068.html