zoukankan      html  css  js  c++  java
  • 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。再做一次尝试

  • 相关阅读:
    设计模式之责任链模式(Chain of Responsibility )
    Cubieboard2裸机开发之(二)板载LED交替闪烁
    Cubieboard2裸机开发之(一)点亮板载LED
    A20(Cubieboard2)启动过程浅析
    入手Cubieboard2之制作最小Linux系统
    ARM Linux启动代码分析
    Linux设备驱动剖析之Input(四)
    Linux设备驱动剖析之Input(三)
    Linux设备驱动剖析之Input(二)
    Linux设备驱动剖析之Input(一)
  • 原文地址:https://www.cnblogs.com/letben/p/5279068.html
Copyright © 2011-2022 走看看