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

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

希望有那么一点帮助。

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

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

首先创建工程:

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

“新建工程,将H:\opencv\sources\modules\stitching的文件夹中的include和src复制到工程文件夹中,将sample\cpp中的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\trymosic\Debug\trymosic.exe : fatal error LNK1120: 1 个无法解析的外部命令

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

根据度娘教程:

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

改成:

导致问题生了小问题:

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

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

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

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

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

蒙蔽了。。。

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

控制台应用程序。

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

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

opencv中stitching_detail的运行的更多相关文章

  1. 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。

    说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...

  2. 【OpenCV】OpenCV中GPU模块使用

    CUDA基本使用方法 在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下: 1.主机代码执行:2.传输数据到GPU:3.确定grid,block大小: 4.调用内核 ...

  3. 图像金字塔及其在 OpenCV 中的应用范例(下)

    前言 本文将主要讲解如何使用 OpenCV 实现图像分割,这也是图像金字塔在 OpenCV 中的一个重要应用. 关于图像分割 在计算机视觉领域,图像分割(Segmentation)指的是将数字图像细分 ...

  4. opencv中的Bayes分类器应用实例

    转载:http://blog.csdn.net/yang_xian521/article/details/6967515 PS:很多时候,我们并不需要特别精通某个理论,而且有的时候即便你非常精通,但是 ...

  5. 立体视觉-opencv中立体匹配相关代码

    三种匹配算法比较 BM算法: 该算法代码: view plaincopy to clipboardprint? CvStereoBMState *BMState = cvCreateStereoBMS ...

  6. Windows7 32位机上,OpenCV中配置GPU操作步骤

    1.  查看本机配置,查看显卡类型是否支持NVIDIA GPU: 2.  从http://www.nvidia.cn/Download/index.aspx?lang=cn下载最新驱动并安装: 3.  ...

  7. OpenCV中的SVM參数优化

    SVM(支持向量机)是机器学习算法里用得最多的一种算法.SVM最经常使用的是用于分类,只是SVM也能够用于回归,我的实验中就是用SVM来实现SVR(支持向量回归). 对于功能这么强的算法,opencv ...

  8. Windows7 64位机上,OpenCV中配置CUDA,实现GPU操作步骤

    原文地址:http://blog.csdn.net/haorenka2010/article/details/24385955 按语:首先感谢http://blog.csdn.net/fengbing ...

  9. 让opencv程序在没有安装opencv的电脑上运行

    经常需要把用opencv写的程序拿到没有装opencv的电脑上去运行和演示,要让opencv程序脱离opencv环境,一般有两种方法: 一种是动态链接opencv,即把相应的dll拷贝到exe所在目录 ...

随机推荐

  1. Amoeba搞定mysql主从读写分离

    前言:一直想找一个工具,能很好的实现mysql主从的读写分离架构,曾经试用过mysql-proxy发现lua用起来很不爽,尤其是不懂lua脚本,突然发现了Amoeba这个项目,试用了下,感觉还不错,写 ...

  2. Codeforces 628E Zbazi in Zeydabad 树状数组

    题意:一个n*m的矩阵,要么是 . 要么是 z ,问可以形成几个大z 分析:(直接奉上官方题解,我感觉说的实在是太好了) Let's precalculate the values zlij, zri ...

  3. java快速获取大图片的分辨率(大图片格式JPG,tiff ,eg)

    问题描述:怎样快速获取一个20MB图片的分辨率? 程序代码: package test; import java.awt.Dimension; import java.awt.image.Buffer ...

  4. 【windows核心编程】 第六章 线程基础

    Windows核心编程 第六章 线程基础 欢迎转载 转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html 1. 线程的组成 ①    一个是线程的内核 ...

  5. mysql修改字段的语句写法

    http://www.111cn.net/database/mysql/50678.htm 下面为您介绍的sql语句都是mysql修改字段操作中的一些常用语句,如果您是一个刚刚接触mysql数据库的新 ...

  6. Activity的lanuchmode

    假设: 假设栈有A-B-C-D,四个activity.其中D Activity在栈顶 standard: 此时跳转到D Activity,跳转后栈的情况是A-B-C-D-D singleTop: 此时 ...

  7. Java自定义缓冲区MyBufferedReader

    package IODemo; import java.io.FileReader; import java.io.IOException; import java.io.Reader; /** * ...

  8. ACCESS-如何多数据库查询(跨库查询)

    测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 ====================== ...

  9. [Objective-c 基础 - 3.3] @property属性详解

    ARC     自动引用计数 ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误.     同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存.     总是通过属性来 ...

  10. 网络操作与AFNetworking

    众所周知,苹果搞的一套框架NSContention发送请求与接收请求的方式十分繁琐.操作起来很不方便.不仅要做区分各种请求设置各种不同的参数,而且还要经常在多线程里操作,同时还要对请求与返回的数据做各 ...