2.09746E,18

时间:2021-11-10 08:10:49 200字

第一篇:《OpenCV 学习笔记》

OpenCV 学习笔记(1

)安装设置、显示图像

分类: 机器视觉 2009-09-22 23:39 6849人阅读 评论(21) 收藏 举报

20091027-Update:

VS2008下安装OpenCV2.0请参考于仕琪老师《VC 2008 Express下安装OpenCV2.0》作适当修改。

1、OpenCV 的下载地址:

2、有用的网址:

(1) Visit OpenCV Wiki-pages at and look for the information there (and/or add it when you have found a solution)

(2) Search through OpenCV archives at (

(3) Join OpenCV mailing list at yahoo groups (see FAQs on how to do it) and mail your questions (the mailing list will probably migrate to OpenCV's SourceForge site /documentation/index.html )

(5) OpenCV 中文网站: /retype/zoom/918aa008f12d2af90242e67e?pn=2&x=0&y=518&raww=893&rawh=148&o=png_6_0_0_0_0_0_0_892.979_1262.879&type=pic&aimh=79.55207166853303&md5sum=29de60e6ef5d16098db5f9bc27edbdb9&sign=3863d79f7b&zoom=&png=80257-168017&jpg=0-0" target="_blank">

进程,然后再重新运行

explorer.exe )。

2、下载安装 Microsoft Visual C++ 2008 Redistributable

OpenCV1.2 在 VS2005 环境下编译时,可能出现如下错误(即‗应用程序正常初始化(0xc0150002失败)‘):

应从微软官方网站中下载安装 Microsoft Visual C++ 2008 Redistributable ,一般可解决此问题,下载地址为:

/downloads/thankyou.aspx?familyId=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displayLang=zh-cn

有关OpenCV安装后编译的问题,在OpenCV中文网论坛中有详细介绍:

/retype/zoom/918aa008f12d2af90242e67e?pn=3&x=0&y=1219&raww=893&rawh=434&o=png_6_0_0_0_0_0_0_892.979_1262.879&type=pic&aimh=233.28107502799554&md5sum=29de60e6ef5d16098db5f9bc27edbdb9&sign=3863d79f7b&zoom=&png=168018-318763&jpg=0-0" target="_blank">

——

再从―Show Directories for‖的下拉菜单中选择―Source files‖

——在包含文件列表中,定位并添加:

C:/Program Files/OpenCV1.2/src/cv

C:/Program Files/OpenCV1.2/src/cvaux

C:/Program Files/OpenCV1.2/src/cxcore

C:/Program Files/OpenCV1.2/src/highgui

C:/Program Files/OpenCV1.2/src/ml{2.09746E,18}.

按OK键保存

(2)建立OpenCV Project

——建立一个Win32 Console项目

——

设置项目所需要的lib

菜单Project -> Properties -> Configuration Properties -> Linker -> Input

在additional dependencies中加入 cxcore120.lib cv120.lib ml120.lib cvaux120.lib highgui120.lib cxts120.lib 等需要的库

二、一个简单的入门程序——显示图像

代码如下:

注意,在Debug完成后,应该把原始图像放到项目文件夹的 debug 文件夹中,使图像与exe程序在同一文件夹内,才能在运行程序时正确读入并显示图像。

第二篇:《附录E》

附录E 桩基等效沉降系数e计算参数

E.0.1 桩基等效沉降系数应按表E.0.1-1~E.0.1-5中列出的参数,采用本规范式5.5.9-1或5.5.9-2计算。 表E.0.1-1 s

/d2

106

107

注:c— 群桩基础承台长度;c— 群桩基础承台宽度;— 桩长;— 桩径。

108

表E.0.1-2

sa/d3

109

注:c— 群桩基础承台长度;c— 群桩基础承台宽度;— 桩长;— 桩径。

110

第三篇:《数值分析计算实习第一题》

北航数值分析作业第一题:

一、 算法的设计:

1、A为五对角带状矩阵,其中有较多的零元素,故将A中非零元素压缩存储在C中,C

为5行501列矩阵,其元素与A中元素一一对应,对应关系为:

aijc(ij2)j;

2、求A的最大最小特征值,可以对A用幂法求出模最大的特征值λm1,然后以λm1为平移量对A进行平移后再用幂法求出λm,令λm2=λm1+λm,可以得知λm1,λm2为A的最大最小特征值,从而可得到A的最大特征值λ501,最小特征值λ1;

3、因为在用反幂法的过程中要解方程组Auky(k1),还要求A的行列式,所以对A进行LU分解,并将分解后的元素也存在C中,以便在求A的模最小的特征值和行列式的时候调用;

4、用反幂法求出A的模最小的特征值λs;

5、求与数μk最接近的特征值:

依次k=1到39执行:对A按μk进行平移得B=A-μkI,并将B存在C中,再对B用反幂法求出B的特征值λ,则离μk最近的特征值为λik=λ+μk;{2.09746E,18}.

m15、A为实对称矩阵,所以A的条件数condA(2)s,其中λm1,λs分别

为A的模最大和模最小的特征值;

6、调用A的LU分解程序,则分解后的U矩阵的对角线元素相乘即为矩阵的行列式值。 此算法的编译环境为Microsoft Visual Studio

需要编写的函数有矩阵压缩函数,矩阵LU分解函数,幂法函数,反幂法函数,最值函数,主函数。

二、 全部源程序

源程序如下:

#include<stdio.h>

#include<math.h>

#include<conio.h>

//定义A中元素

double C[5][501];

double a[501];

double b;

double c;

//声明所有函数

void YaSuoJZ(double C[5][501],double a[501],double b,double c) ;//压缩矩阵函数 double mifa(double C[5][501]); //幂法函数

void daizhuangLU(double A[5][501]); //带状矩阵的LU分解

double fanmifa(double C[5][501]);//反幂法函数

//最值函数

int max2(int x,int y);

int max3(int x,int y,int z);

int min(int x,int y);

//最值函数

int max2(int x,int y) //求2个数的最大值

{

int z;

z=x>y?x:y;

return(z);

}

int max3(int x,int y,int z) //求3个数的最大值

{

int w;

w = z > max2(x,y)? z:max2(x,y);

return(w);

}

int min(int x,int y) //求2个数的最小值

{

int z;

z=x>y?y:x;

return(z);

}{2.09746E,18}.

//将矩阵A压缩存储在矩阵C中

void YaSuoJZ(double C[5][501],double a[501],double b,double c)

{

int i;

for(i=0;i<=500;i++)

{

if(i>=2) C[0][i]=c;

else C[0][i]=0;

if(i>=1) C[1][i]=b;

else C[1][i]=0;

if(i<=499) C[3][i]=b;

else C[3][i]=0;

if(i<=498) C[4][i]=c;

else C[4][i]=0;

C[2][i]=a[i];

}

}

//幂法函数:用幂法求矩阵模最大的特征值

double mifa(double C[5][501])

{

double u[501];

double y[501]={0},η=0;

double β,βk=0;

double ε=1; // ε为精度

double sumu=0,sumAY=0;

int i,j,k=1; //k为循环次数

for (i=0;i<=500;i++) //取任一非零向量u0

u[i] = 1.0;

while(ε>=1e-12)

{

for(i=0;i<=500;i++) //求u(k-1)的2范数η

sumu=sumu+u[i]*u[i];

η=sqrt(sumu);

sumu=0;

for(i=0;i<=500;i++) //求y(k-1)

y[i]=u[i]/η;{2.09746E,18}.

for(i=0;i<=500;i++) //求u(k)的各分量u[i]

{

for(j=max2(0,i-2);j<=min(i+2,500);j++)

sumAY=sumAY+C[i-j+2][j]*y[j];

u[i]=sumAY;

sumAY=0;

}

//求幂法中的βk

β=βk; //将β(k-1)放在β中

βk=0;

for(i=0;i<=500;i++) //求βk

βk=βk+y[i]*u[i];

if(k>=2)

ε=fabs(βk-β)/fabs(βk);

k++;

}

return(βk);

}

//带状矩阵的LU分解

void daizhuangLU(double A[5][501])

{

int i,j,k,m,t;

double sumukj=0,sumlik=0;

for(k=0;k<=500;k++)

{

for(j=k;j<=min(k+2,500);j++) //求ukj并存在A[k-j+2][j]中 {

for(t=max3(0,k-2,j-2);t<=k-1;t++)

sumukj=sumukj+A[k-t+2][t]*A[t-j+2][j];

A[k-j+2][j]=A[k-j+2][j]-sumukj;

sumukj=0;

}

if(k<500)

for(i=k+1;i<=min(k+2,500);i++) //求lik并存在A[i-k+2][k]中 {

for(m=max3(0,i-2,k-2);m<=k-1;m++)

sumlik=sumlik+A[i-m+2][m]*A[m-k+2][k];

A[i-k+2][k]=(A[i-k+2][k]-sumlik)/A[2][k];

sumlik=0;

}

}

}{2.09746E,18}.

//反幂法函数:用反幂法求矩阵的模最小的特征值

double fanmifa(double M[5][501])

{

double u[501];

double y[501]={0},x[501],η=0;

double fβ,fβk=0;

double ε=1;

double fsumu=0,sumLX=0,sumUu=0;

int i,t,m,k=1;

for(i=0;i<=500;i++) //任取一非零向量u0

u[i]=1;

daizhuangLU(M); //对A进行LU分解A=LU,Au(k)=y(k-1)等价于Uu(k)=x和Lx=y(k-1) while(ε>=1e-12)

{

for(i=0;i<=500;i++) //求u(k-1)的2范数η

fsumu=fsumu+u[i]*u[i];

η=sqrt(fsumu);

fsumu=0;

for(i=0;i<=500;i++) //求y(k-1)

y[i]=u[i]/η;

for(i=0;i<=500;i++) //求中间向量x

x[i]=y[i];

for(i=1;i<=500;i++)

{

for(t=max2(0,i-2);t<=i-1;t++)

sumLX=sumLX+M[i-t+2][t]*x[t];

x[i]=x[i]-sumLX;

sumLX=0;

}

u[500]=x[500]/C[2][500]; //求u(k)的各分量u[i]

for(i=499;i>=0;i--)

{{2.09746E,18}.

for(m=i+1;m<=min(i+2,500);m++)

sumUu=sumUu+M[i-m+2][m]*u[m];

u[i]=(x[i]-sumUu)/M[2][i];

sumUu=0;

}

//求反幂法中的βk

fβ=fβk; //将fβ(k-1)放在fβ中

fβk=0;

for(i=0;i<=500;i++) //求fβk

fβk=fβk+y[i]*u[i];

if(k>=2)

ε=fabs(1/fβk-1/fβ)/fabs(1/fβk);

k++;

}

return(1/fβk);

}

//主函数

void main()

{

int i,j,k;

double λ1,λ501,λm,λm1,λm2,λs,λ,p;

double cond,detA=1;

for(i=1;i<=501;i++)

a[i-1]=(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i);

b=0.16;

c=-0.064;

YaSuoJZ(C,a,b, c); //将矩阵A中元素压缩存储在C中

λm1=mifa(C); //对A用幂法求出模最大的特征值λm1

λs=fanmifa(C); //对A用反幂法求出模最小的特征值λs

YaSuoJZ(C,a,b, c); //还原矩阵A中元素并压缩存储在C中

for(j=0;j<=500;j++) //对A进行平移,平移量为λm1,平移后矩阵元素压缩存储在C中 C[2][j]=C[2][j]-λ?m1;

λm=mifa(C);

λm2=λm1+λm; //λm1与λm2是矩阵的最大最小特征值

if(λm1>λm2) //判断A最大最小特征值