2014年5月5日开始的一周学习中遇到的问题与解答

来源:互联网 发布:桌面天气软件 编辑:程序博客网 时间:2024/05/18 02:17

2014年5月5日:

任务:

我的任务是弄懂“人脸识别系统”,不过我更希望弄懂之后能够做出自己的东西。朝着这个目标努力吧。

12年的时候曾经接触过一周的人脸识别,不过那个时候一点头绪都没有,每天都是我们小组自己折腾,效率很低。不过经过那段时间我稍微接触了一点点的opencv。

遇到的问题与解决方法:

1、安装OpenCV:

接下来是Opencv的操作步骤,我是在百度上看到的,百度中的内容如下:

编译软件为 VS2010,opencv版本为2.4.9。操作系统为 XP.
在opencv中文网站上下载2.3.1版本后解压到D:\Program Files中。
一、设置环境变量
我的电脑--->右键--->属性--->高级--->环境变量--->在用户变量里,新建path
在path中添加D:\Program Files\opencv\build\x86\vc10\bin; D:\Program Files\opencv\build

二、设置 visual studio 2010 头文件、库文件。
打开VS2010,新建一个Win32 控制台应用程序,取名为 helloopencv

右击工程-->配置属性--->VC++目录--->包含目录文件中添加  d:\Program Files\OpenCV\build\include d:\Program Files\OpenCV\build\include\opencv  d:\Program Files\OpenCV\build\include\opencv2

在配置属性--->VC++目录--->库目录中添加
d:\Program Files\OpenCV\build\x86\vc10\lib

添加lib库文件, 在配置debug里--->项目属性--->链接器--->输入--->附加依赖库 里加上
opencv_core249d.lib
opencv_highgui249d.lib
opencv_video249d.lib

opencv_ml249d.lib

opencv_legacy249d.lib
opencv_imgproc249d.lib
opencv_flann249d.lib
opencv_features2d249d.lib
opencv_calib3d249d.lib
opencv_objdetect249d.lib

opencv_contrib249d.lib

步骤6:在配置release里--->项目属性--->链接器--->输入--->附加依赖库 里加上
opencv_core249.lib
opencv_highgui249.lib
opencv_video249.lib
opencv_ml249.lib
opencv_legacy249.lib
opencv_imgproc249.lib
opencv_flann249.lib
opencv_features2d249.lib
opencv_calib3d249.lib
opencv_objdetect249.lib
opencv_contrib249.lib

将opencv 目录D:\Program Files\opencv\samples\c下的 lena.jpg 文件 拷贝到D:\My Documents\Visual Studio 2010\helloopencv\Debug

拷贝一段程序测试,复制到 helloopencv.cpp 中
#include "stdafx.h"
#include <opencv2/opencv.hpp> 
using namespace std;
using namespace cv;
 
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg"; 
Mat img = imread(imagename); 
if(img.empty()){
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;

imshow("image", img); 
waitKey(); 
return 0;
}

编译文件
在D:\My Documents\Visual Studio 2010\helloopencv\Debug目录下生成了 helloopencv.exe 文件,双击出现下图就证明搞定opencv的安装。


2、LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt


解决方法:
a) 项目-->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]   ----------->只要设这个就可以了
b) 项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是


3、安装VS2012后结果使用VS2010时, 出现错误 
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt


解决方法:
To summarize:
Either disable incremental linking, by going to
Project Properties 
   -> Configuration Properties 
       -> Linker (General) 
          -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
or install VS2010 SP1.


4、为什么我的电脑打开CHM文件无法显示内容


解决方法:

在CHM上右键——属性——解除锁定!
a) 检查下载的文件是否受损,下载的过程中是否被打断过。 
b) 下载的文件本身的问题?请查看文件大小是否为零。 
c) 您的系统目录下是否有HH.EXE这个文件(如:c:\windows下),这个文件用来打开CHM文件。如果有HH.EXE仍打不开,可能程序所需链接库文件受损;如果没有HH.EXE,拷贝一个过来或将系统覆盖安装一次。 
d) “开始”-“运行”-“打开”内输入“regsvr32 /i hhctrl.ocx” 
e) 将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件导入注册表.(注意先备份注册表)。 

CODE:[Copy to clipboard]REGEDIT4 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp.x\HHRestrictions] 
"UrlAllowList"="\productmanuals\helpfiles;http://www.wingtiptoys.com/help/"



2014年5月6日:

今天的计划是:

1、看完一个半的章节(学习Opencv一书),做几个小程序,并且弄懂(每段代码5遍+)

2、把程序跑起来(pass)

3、毕业论文下载


遇到的问题:

1、在VS2010中,跑程序时遇到如下问题:(报错)


我还以为是程序的问题,结果不是,winocc.cpp不是工程里的文件。

百度上说是的指针的问题,结果也不是

后来师傅说“可能是工程下的dll资源版本不对或者不全”,最后在"C:\Windows\System32"下安装了相应的dll就可以运行了

2、每次新建一个工程的时候,都要重新配置Opencv,很麻烦,于是我就学习了一下vs2010中一次性配置Opencv2.4.9的方法

(以下内容是转载的):

1.下载OpenCV2.3.1 superpackage

2.配置环境变量

我的电脑--->右键--->属性--->高级--->环境变量--->在用户变量里,新建path和OPENCV两个项

步骤1:在path中添加 ~\OpenCV2.3\build\x86\vc10\bin,就是添加dll文件

步骤2:添加OPENCV的环境变量 ~\OpenCV2.3\build 

3.配置vs2010 express

在"项目"->"属性"--->VC++目录--->包含目录文件中添加

~\OpenCV2.3\build\include

~\OpenCV2.3\build\include\opencv

~\OpenCV2.3\build\include\opencv2


"项目"->"属性"--->VC++目录--->库目录中添加
~\OpenCV2.3\build\x86\vc10\lib
步骤5 添加lib库文件, 在配置debug里 "项目"->"属性"--->链接器--->输入--->附加依赖库里加上 opencv_core231d.lib opencv_highgui231d.lib opencv_video231d.lib opencv_ml231d.lib opencv_legacy231d.lib opencv_imgproc231d.lib
步骤6:在配置release里--->项目属性--->链接器--->输入--->附加依赖库里加上 opencv_core231.lib opencv_highgui231.lib opencv_video231.lib opencv_ml231.lib opencv_legacy231.lib opencv_imgproc231.lib
一次性配置时
1.执行菜单栏“视图——其他窗口——属性管理器”,可以看到“属性管理器”显示在工作区左侧。
2双击Debug | Win32下的“Microsoft.Cpp.Win32.user“,在弹出的配置框中配置。这个设置是对所有工程有效的。你可以打开其他的工程或者新建新的工程,可以看到都继承了此配置。

注:有些程序需用到tbb函数,opencv2.3.1里opencv/build/commom里有tbb但不全,这里从tbb官网下载最新的tbb40_233oss_win.exe解压到你期望的位置。下面开始配置,步骤和配置opencv类似。
一、在环境变量中用户变量中PATH中添加D:\Program Files\tbb40_233oss\bin\ia32\vc10注意这里要和前面配置的opencv的path路径用分号(;)隔开。在系统的环境变量path中也做相同配置。
二、与配置opencv类似,对vc++目录下选项进行配置。
(1)可执行文件目录:
D:\Program Files\tbb40_233oss\bin\ia32\vc10
(2)Library Directories(库目录)
D:\Program Files\tbb40_233oss\lib\ia32\vc10
(3)Include Directories(包含目录)
D:\Program Files\tbb40_233oss\include


2014年5月7日:

今天的任务:

1、看到第二个章节结束,如果有时间可以看第三个章节的一半

2、修改毕业设计

3、选择一个程序来做,定下初步的思路


今天的心情:

有点烦躁,不知道为什么感觉上午的时候会比较有精神,但是下午的时候就没什么精神了,今天花了很多时间看前两天学习的东西,导致今天没什么成果,以后不能这样,当天的事情要在当天复习完。


需要改正部分:

1、以后无论喜不喜欢做的事情,只要是在做事情都要投入百分百的精力下去,不要让自己后悔,每天的事情都要做好!!!!加油加油!!

2、向老爸学习,说到做到!加油加油!


遇到的问题:

1、在VS2010下运行不起来的程序,在Debug下的exe却可以运行的起来。

VS2010下面的:

Debug下的可执行文件:


哈哈,突然发现自己真是一个特别新的新手害羞

嘿嘿,刚刚师傅帮我折腾了一下,居然是因为照片放的位置不正确,我勒个去~~~~~

不过为什么以前都不会报错呢~~~委屈

2、今天学习的一个函数assert():

assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:

#include<assert.h>

void assert(int expression);

assert的作用是现计算表达式expression,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调研abort来终止程序运行

assert()的缺点是:频繁调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include<assert.h>的语句之前插入#define NDEBUG来禁用assert调用。代码如下:

#include<stdio.h>

#define NDEBUG

#include<assert.h>

注意:

1、不能使用改变环境的语句,因为assert只在DEBUG中生效,如果这么做会使程序在真正运行时遇到困难。

错误:assert(i++<100);//这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么最终i++这条命令也不会执行。

正确:assert(i<100);  i++;

2、有些地方,assert不能代替条件过滤

3、今天用到CvPyrDown这个函数的时候,出现了问题:


后来才发现是因为这个函数写错了

错误的:IplImage* out = cvCreateImage(cvSize(in->width,in->height),in->depth,in->nChannels);

正确的:IplImage* out = cvCreateImage(cvSize(in->width/2,in->height/2),in->depth,in->nChannels);

看来需要多大的Image就要创建多大的image,不要创建大了,也不要创建小了。

2014年5月8日

任务:

1.看完第二章的Opencv(ok)
2.选择一个方面写程序,确定初步的思路
3.修改毕业设计(ok)

遇到的问题:

1、运行的时候出现:[cinepak@001ab780] cinepak_decode failed

暂时还不知道为什么


2014年5月9日

任务:

1、对程序进行学习,并且选择一个模块写程序

2、毕业论文修改(二)


0 0