文档库 最新最全的文档下载
当前位置:文档库 › 常用tuxedo函数说明

常用tuxedo函数说明

常用tuxedo函数说明
常用tuxedo函数说明

部分类型解释:

FBFR:域缓存指示器

FLDOCC:域发生事件的序号

FLDLEN:域长度

FLDID:域的类型

FMLTYPE:支持标准的C语言的数据类型:short,long,float,double,char

增加了:string(一组连续的字符串,以NULL结尾)

carray(字符数组)

pointer(缓存指示器)

(一)ATMI函数:Application-Transaction Monitor Interface

tpreturn()表示服务程序结束

1.发送回答给客户端

2.断开服务器开始时建立的所有连接

tpreturn(int rval, long rcode, char *data, long len, long flags)

实例:

tpreturn(TPFAIL,-1L,(char *)FBFRrqst,0L,0);程序执行失败,断开所有连接。

tpreturn(TPSUCCESS,0L,(char *)FBFRrqst,0L,0);程序执行成功,断开所有连接。

1。rval:TPFAIL和TPSUCCESS作为参数有各自的一套内部操作。在实际的程序开发中,程序成功的完成,参数置为TPFAIL;

程序失败则参数置为TPSUCCESS;

2。rcode:程序执行成功置为“0L”,执行失败置为“-1L”。

3。data:回复信息所用的参数。

4。len:指示发送数据缓冲的数量,在BOSS系统中一般置为0L或者忽略。

5。flags:为以后保留的参数必须设为0。

tpbegin()发起事务。失败返回-1,指出错误情况

#include

int tpbegin(unsigned long timeout, long flags)

实例:

tpbegin(TRANSTIME, 0);发起时间控制的事件。0为预留参数必须置0

tpcommit()事务提交。失败返回-1。

实例:

tpcommit(0)

tpabort()事务回滚。失败返回-1。

实例:

tpabort(0)

userlog()打印ULOG信息

#include "userlog.h"

extern char *proc_name;

int userlog (format [ ,arg] . . .)

char *format;

实例:

(void)userlog((char *)"T--tpopen failed, Unix error %d\n",Uunixerr)

无返回类型,按字符型打印T--tpopen failed, Unix error ‘Uunixerr’错误内容。

tpalloc()申请缓存空间,失败返回-1

#include

char * tpalloc(char *type, char *subtype, long size)

1。type:申请缓存空间的类型。

2。subtype:特殊缓存空间的类型,在BOSS系统中一般置为NULL。

3。size:申请缓存空间的大小。

实例:

FBFRansw=(FBFR*)tpalloc((char*)FMLTYPE,NULL,Fneeded((FLDOCC)NF,(FLDLEN)NV) );

申请名为FBFRansw的缓存空间,类型为FMLTYPE,无特殊缓存类型,大小为Fneed((FLDOCC)NF,(FLDLEN)NV)

tpfree()释放缓存

tpfree(char *ptr)

1。ptr:释放的缓存名

实例:

tpfree((char *)FBFRansw);

释放名为FBFRansw的缓存。

tpgetlev()判断是否有事务正在进行,有:返回1,没有:返回0。

#include

int tpgetlev()

实例:

tpgetlev() == 1

tpcall()调用服务端程序,失败返回-1

int tpcall(char *svc, char *idata, long ilen, char **odata, long *olen, long flags)

1。svc:调用的服务名

2。idata:请求数据缓冲器

3。ilen:发送数据缓冲器的数目

4。odata:回复信息写入的缓冲器指针

5。olen:回复信息的长度

6。flags:预留参数必须置0

实例:

tpcall("TOUPPER",buf,0,&buf,&len,0)

调用TOUPPER服务,传入buf,服务处理结果返回给buf。

tpopen()为连接的呼叫者打开资源管理程序,开启构造文件中的一些特殊的资源管理程序。一个呼叫者最多一个资源管理程序失败返回-1,成功返回0。

#include

int tpopen(void)

tpclose()切断呼叫者与资源管理程序的联系,关闭构造文件中开启的资源管理程序失败返回-1,成功返回0。

#include

int tpclose(void)

tpsvrinit()tuxedo程序调用tpsvrinit()进行初始化,发生在控制线索成为服务,而没有服务请求时。用于外部程序使得tpreturn()和tpforward()返回无结果

#include

int tpsvrinit(int argc, char **argv)

tpsvrdone()tuxedo程序调用tpsvrdone()在完成处理之后,退出服务之前。断开连接,忽略未决回复,中止事务。tpreturn()和tpforward()返回无结果

#include

void tpsvrdone(void)

实例:

#if defined(__STDC__)||defined(__cplusplus)

tpsvrinit(int argc,char ** argv)

#else

tpsvrinit(argc,argv) 进行初始化

int argc;

char ** argv;

#endif

{

/*打开资源管理器(数据库)*/

if (tpopen() == -1) 只能开启一次

{

}

}

void tpsvrdone() 完成服务请求

{

/*关闭资源管理器(数据库)*/

if (tpclose() == -1) 关闭

{

}

}

这些ATMI接口函数执行发生错误时,都将对tperrno()进行赋值,通过这种方式返回不同的错误。

(二)FML函数:

Fchg()修改缓存某域的值。失败返回-1。

#include

#include "fml.h"

int Fchg(FBFR *fbfr, FLDID fieldid, FLDOCC oc, char *value, FLDLEN len)

1。fbfr:要改变得缓存名

2。fieldid:要改变的域名

3。oc:是发生事件的号码.(可以理解成为行号)

4。value:修改值

5。len:修改值的长度。(如果为0则是value的默认长度)

实例:

Fchg(FBFRansw,RESULTCODE,(FLDOCC)0,(char *)&resultcode,(FLDLEN)0)

把FBFRansw缓存中的域名为RESULTCODE的首条记录修改为resultcode的内容,长度为resultcode的默认长度

Ffind()查找指定内容的值,失败返回NULL,并修改Ferror指出错误情况。

#include

#include "fml.h"

char * Ffind(FBFR *fbfr, FLDID fieldid, FLDOCC oc, FLDLEN *len)

1。fbfr:查询的缓存名

2。fieldid:查询的域名

3。oc:查询发生事件的号码(可以理解成为行号)

4。len:查询内容的长度

实例:

Ffind(FBFRrqst,RESULTERRINFO,0,(FLDLEN *)&lLen)

查询FBFRrqst缓存中RESULTERRINFO域的首条记录的内容,长度为值的长度。

Fget()当值被修改时重新取值。失败返回-1,并修改Ferror指出错误情况。

#include

#include "fml.h"

int Fget(FBFR *fbfr, FLDID fieldid, FLDOCC oc, char *value, FLDLEN *maxlen)

1。fbfr:取值的缓存名

2。fieldid:取值的域名

3。oc:取值发生事件的号码(可以理解成为行号)

4。value:取得值赋给的变量

5。maxlen:值返回长度

实例:

Fget(FBFRrqst,TRADETYPECODE,(FLDOCC)0,tradetypecode,(FLDLEN)0)

获取FBFRrqst缓存中TRADETYPECODE域的首条记录的值赋给tradetypecode,长度为默认长度

Findex()明确的指定一快缓存。失败返回-1,并修改Ferror指出错误情况。

#include

#include "fml.h"

int Findex(FBFR *fbfr, FLDOCC intvl)

1。fbfr:是buffer名

2。intvl:指定的标定指数间隔

实例:

Findex(&FBFRansw,0)

当执行Fappend()添加值到缓存后可能存在数据混乱的情况,调用Findex进行一下整理,必需要加的。

Fcpy()copy缓存内容。失败返回-1,并修改Ferror指出错误情况。

#include

#include "fml.h"

int Fcpy(FBFR *dest, FBFR *src)

1。dest:目标缓存

2。src:源缓存

实例:

Fcpy(FBFRrqst,FBFR_in)

把FBFR_in缓存的内容拷入FBFRrqst缓存

Finit()初始化缓存。

实例:

Finit(FBFRrqst,(FLDLEN)Fsizeof(FBFR_in))初始化缓存(通过长度)

初始化名为FBFRrqst的缓存,大小等于FBFR_in的大小。

Fappend()添加指定域的值到最后的缓存。失败返回-1,并修改Ferror指出错误情况。

#include

#include "fml.h"

int Fappend(FBFR *fbfr, FLDID fieldid, char *value, FLDLEN len)

1。fbfr:添加的缓存名

2。field:添加的域名

3。value:添加的值

4。len:添加值的长度

实例:

Fappend(&FBFRansw,RECSTA TE,recstate,(FLDLEN)0)

将recstate的内容添加到FBFRansw缓存的RECSTA TE域中,长度为默认长度

当头文件为:FML32.h时所有的函数都要加上32予以区别。如Fcpy()-->Fcpy32()

个别函数在BOSS系统中,公司对其进行了封装如:Fget()-->fnMFget()。并增加了若干参数。主要为:strSvcName服务名

如下:

int fnMFget(FBFR * FBFRdes, FBFR * FBFRsrc,FLDID fldId, FLDOCC fldOc, char * p_chValue,FLDLEN * maxlen, int iNull, int iLen, char * p_chUserInfo )

说明:重新封装的Fget,域存在的判断,参数长度的校验,一旦出错,打印并向RESULTERRINFO中赋值

输入:FBFR * FBFRdes:原子服务的输出buffer

FBFR * FBFRsrc:原子服务的输入buffer,数据从这里提取

紧接着4个参数与Fget的后4个输入参数一致

int iNull:域存在标志(0--允许域不存在;1--域必须存在);当iNULL=0时,

iLen是不起作用的

int iLen:此变量最大允许的长度

char * p_chUserInfo:传入的服务名

返回: 0--正确

2--要查找的参数在当前缓存中不存在(iNull=0)

5--要查找的参数在当前缓存中为空(iNull=0)

-1--异常错误

-2--要查找的参数在当前缓存中不存在(iNull=1)

-3--参数的长度超出了最大允许的长度

-4--不支持传入的参数类型

-5--要查找的参数在当前缓存中为空(iNull=1)

实例:

fnMFget(FBFR_in,FBFR_in,TRANSCODE,(FLDOCC)0,transcode,(FLDLEN*)NULL,1,sizeof(tr anscode),strSvcName))

获取FBFR_in缓存中TRADETYPECODE域的首条记录的值赋给tradetypecode,长度为默认长度,域必须存在,最大允许长度为

transcode的长度,服务名为strSvcName的值,获取的值由FBFR_in传出

void fnTperrlog(char * p_chFilename, int iLine, FBFR * FBFRdes, char * p_chUserInfo) 说明:处理A TMI的错误信息,打印并向RESULTERRINFO中赋值

输入:__FILE__(文件名);__LINE__(当前行号);FML;自定义信息

实例:

fnTperrlog((char *)__FILE__,__LINE__,FBFR_in,(char *)"CORL_CS:分配缓存失败!")

A TMI出错处理,文件名,行数,把"CORL_CS:分配缓存失败!"的信息写入FBFR_in缓存的RESULTERRINFO中

void fnFerrlog(char * p_chFilename, int iLine, FBFR * FBFRdes, char * p_chUserInfo) 说明:处理FML的错误信息,打印并向RESULTERRINFO中赋值

输入:__FILE__(文件名);__LINE__(当前行号);FML;自定义信息

实例:

fnFerrlog((char *)__FILE__,__LINE__,FBFR_out,(char *)"CORL_CS:复制缓存失败!") FML出错处理,文件名,行数,把"CORL_CS:复制缓存失败!"的信息写入FBFR_out缓存的RESULTERRINFO中

void fnSelferrlog(char * p_chFilename, int iLine, FBFR * FBFRdes, char * p_chUserInfo) 说明:处理自定义的错误信息,打印并向RESULTERRINFO中赋值

输入:__FILE__(文件名);__LINE__(当前行号);FML;自定义信息

实例:

fnSelferrlog((char *)__FILE__,__LINE__,FBFRansw,(char *)"PUB_QUALITY:记录数量超过上限,请通知系统管理员!")

自定义出错处理,文件名,行数,把"PUB_QUALITY:记录数量超过上限,请通知系统管理员!"的信息写入FBFRansw缓存的

RESULTERRINFO中

int fnSqlerr(int lSqlcode, char * p_chFilename, int iLine, FBFR * FBFRdes, char * p_chUserInfo)

说明:处理SQL的错误信息,打印并向RESULTERRINFO中赋值

输入:sqlca.sqlcode, (char *)__FILE__(文件名);__LINE__(当前行号);FML

返回: 0--没有SQL错误;-1--存在SQL错误,需要tpreturn;-2--对于游标属于正常情况

实例:

fnSqlerr(sqlca.sqlcode,(char *)__FILE__,__LINE__,FBFRansw,strSvcName)

SQL出错处理,文件名,行数,把strSvcName的信息写入FBFRansw缓存的

int fnChgbuf(FBFR ** p_FBFR_out,FBFR ** p_FBFRrqst,FBFR * FBFRansw,int resultcode,char * p_chUserInfo,int iflag)

说明:输入输出buffer的更新处理

输入:iflag:0更新原子服务的输入缓存和返回给客户端的输出缓存

1只是更新原子服务的输入缓存

2只是更新返回给客户端的输出缓存

实例:

fnChgbuf((FBFR **)&FBFR_out,(FBFR **)&FBFRrqst,FBFRansw,resultcode,strSvcName,2) 更新返回给客户端的输出缓存

int fnMFchg(FBFR ** p_FBFRdes, FLDID fldId, FLDOCC fldOc, char * p_chValue,FLDLEN len,int iMultiple, int iLen, char * p_chUserInfo )

说明:重新封装的Fget,一旦出错,打印并向RESULTERRINFO中赋值

输入:第2到第4个参数与Fchg的输入参数一致

int iMultiple:增长因子的倍数

int iLen:备用字段

char * p_chUserInfo:传入的服务名

返回:-0--正确

-1--异常错误

-2--备用

-3--备用

-4--备用

-5--获取缓存中的参数名失败

实例:

fnMFchg(&FBFRansw,RESULTERRINFO,(FLDOCC)0,retinfo,(FLDLEN)0,0,0,strSvcName) 把FBFRansw缓存中的域名为RESULTINFO的首条记录修改为retinfo的内容,长度为resultinfo的默认长度,出错则strSvcName

赋值给FBFRansw缓存

fnMFappend(FBFR ** p_FBFRdes, FLDID fldId, char * p_chValue,FLDLEN len, int iMultiple, int iLen, char * p_chUserInfo )

说明:重新封装的Fappend,一旦出错,打印并向RESULTERRINFO中赋值

输入:int iMultiple:增长因子的倍数

int iLen:备用字段

char * p_chUserInfo:传入的服务名

返回: -0--正确

-1--异常错误

-2--备用

-3--备用

-4--备用

-5--获取缓存中的参数名失败

实例:

fnMFappend(&FBFRansw,CHANNELNO,(char

*)stMapinfo.channelno,(FLDLEN)0,0,0,strSvcName)

将stMapinfo.channelno的内容添加到FBFRansw缓存的CHANNELNO域中,长度为默认长度,出错则strSvcName赋值给FBFRansw缓存

int fnMFindex(FBFR ** p_FBFRdes,char * p_chUserInfo,int iMultiple)

说明:索引缓存

输入:

实例:

fnMFindex(&FBFRansw,strSvcName,0)

当执行Fappend()添加值到缓存后可能存在数据混乱的情况,调用Findex进行一下整理,必需要加的。出错则strSvcName赋值给

FBFRansw缓存

void fnToFixLen(char * p_chValue,int iFixlen)

说明:在变量后加空格,使变量达到固定的长度

输入:

实例:

fnToFixLen(servtypecode,2)

在servtypecode变量加空格,达到长度2

以上函数全是在程序中发现的,解释也纯属个人理解。

OpenCV主要函数介绍

4.1 OpenCV主要函数介绍 1) cvLoadImage 从文件中读取图像 IplImage* cvLoadImage(const char* filename,int flags=CV_LOAD_IMAGE_COLOR ); 函数cvLoadImage从指定文件读入图像,返回读入图像的指针。其中filename是要被读入的文件的文件名;flags指定读入图像的颜色和深度。 2)cvSaveImage 保存图像到文件 int cvSaveImage( const char* filename, const CvArr* image ); 函数cvSaveImage保存图像到指定文件。其中filename保存文件名。image 要保存的图像。图像格式的的选择依赖于filename的扩展名,只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。 3)cvQueryFrame从摄像头或者文件中抓取并返回一帧 IplImage* cvQueryFrame( CvCapture* capture ); 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。其中capture视频获取结构。。 4)cvCaptureFromCAM 初始化摄像头 CvCapture* cvCaptureFromCAM( int index ); 函数cvCaptureFromCAM给从摄像头的视频流分配和初始化CvCapture结构。 其中index要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。 5)cvHaarDetectObjects 用来检测图像中的人脸区域 CV API(CvSeq*) cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemStorage* storage, double scale_factor CV_DEFAULT(1.1), int min_neighbors CV_DEFAULT(3), int flags CV_DEFAULT(0), CvSize min_size CV_DEFAULT(cvSize(0,0)), CvSize max_size CV_DEFAULT(cvSize(0,0))); 用于快速检测人脸区域,便于提取得到人脸数据。其中image 为被检图像,cascade为 haar分类器级联的内部标识形式,storage 为用来存储检测到的一

tuxedo基本操作atmi介绍

系统自带authsvr服务进程,和两个子例程,tpsvrinit(),tpsvrdone。 authsvr:客户端调用tpinit进行认证时,由交易TPAPPAUTH回应。 服务端自动调用tpsvrinit,可以在函数中进行数据库连接和处理命令行参数。 结束时tpsvrdone也被自动调用,可以在函数中断开数据库连接。 这两个例程分别在进程开始时和进程将要结束时,被自动调用。 服务端编程指导: 交易内一次只能接收一个请求,发送一个响应。 交易必须以tpretrurn, tpforward结束。 或交易内使用了tpacall,在返回或转发前,要么等待回应,要么使用tpcancel。 tpreturn一旦被调用,控制权就转移到main函数,未进行显示收取的响应会被丢弃,此时客户端会收到错误。 客户端调用tpcall后,若服务端此时对应的tpreturn成功返回,客户端tpcall才能返回。 客户端调用tpacall后,若服务端此时对应的tpreturn成功返回,客户端tpgetrply才能返回。返回的数据,可由客户端从指针*data处取得。 tpforward调用时,程序逻辑应保证之前的处理都正确,响应被收到。被调用后,交易不再等待响应。main函数取得控制权。被请求的另一个交易负责响应原来的请求。不能将请求转发到自身。 tpreturn 的参数: rval: 表明交易是否成功执行。 rcode:是应用自定义的返回值。客户端可通过tpurcode获得tpreturn的rcode值,而不论交易是否成功。 data: 该缓冲区由客户端传递,服务端可以将回应数据写至此地址。也可以进行tprealloc.而不能tpfree. 服务端也可以自行tpalloc一个缓冲区,并返回给缓冲区,但需要自行若管理。如果发送的数据长度大于已分配的,tuxedo会自动扩大缓冲。 len: 用来指示响应缓冲的长。客户端可据此得知数据是否有变化。 如果客户端需要收到一个响应,而tpreturn自身处理时出错,这时tpcall或tpgetrply会失败,客户端应检查tperrno. 此时客户端的data缓冲区没有变化。若交易返回的消息不符客户端要求,则无法判断应用状态,此时原来的缓冲区保持不变。如果交易超时,响应数据不会被发送。 发布与取消交易名: 当一个服务进程被启动后,它会根据配置文件来向公告板上广告自己有交易名。这通常由buildserver命令执行时完成。 tpcall:

Tuxedo日常监控维护培训-v1-0

Tuxedo日常监控维护培训手册 (V1.0)

修订记录

目录 1.引言 (1) 1.1. 编写目的 (1) 1.2. 参考资料 (1) 2.tuxedo常用操作 (1) 2.1. tuxedo服务的正常启动和停止. (1) 2.2. 查看tuxedo的版本信息 (2) 2.3. tmadmin控制台进入和退出: (2) 2.4. 查看服务信息psr (3) 2.5. 查看交易信息psc (4) 2.6. 查看队列信息pq (5) 2.7. 查看客户端信息pclt (5) 2.8. 查看部分统计信息bbs (6) 2.9. 设置为观察某个节点的进程信息default (6) 2.10. 查看消息发送状态pnw (7) 2.11. dmadmin域控制台的进入和退出: (7) 2.12. 手动连接域 (8) 2.13. 查看域网关的连接情况 (8) 3.tuxedo日常维护 (8) 3.1. 对ubb文件只做语法检查(不真正的load成TUXCONFIG) (8) 3.2. 对dm文件只做语法检查(不真正的load成DMXCONFIG) (9) 3.3. 反编译tuxconfig 文件和dmxconfig文件 (9) 3.4. 如何清除IPC资源 (9) 3.5. sh命令直接执行tuxedo操作 (9) 3.6. 启动tlisten服务 (9) 3.7. 启动多机中备机的BBL (9) 4.tuxedo注意事项、常见问题及解决方法 (10) 4.1. WSL配置参数注意 (10) 4.2. UBB文件中MAX的配置注意 (10) 4.3. tuxedo WS 的配置注意 (10) 4.4. Can’t attach BBL (10) 4.5. 运行一段时间交易失败 (11) 4.6. 常见Tuxedo错误号 (11)

opencv函数目录-Cv图像处理

目录 1 梯度、边缘和角点 1.1 Sobel 1.2 Laplace 1.3 Canny 1.4 PreCornerDetect 1.5 CornerEigenValsAndVecs 1.6 CornerMinEigenVal 1.7 CornerHarris 1.8 FindCornerSubPix 1.9 GoodFeaturesToTrack 2 采样、插值和几何变换 2.1 InitLineIterator 2.2 SampleLine 2.3 GetRectSubPix 2.4 GetQuadrangleSubPix 2.5 Resize 2.6 WarpAffine 2.7 GetAffineTransform 2.8 2DRotationMatrix 2.9 WarpPerspective 2.10 WarpPerspectiveQMatrix 2.11 GetPerspectiveTransform 2.12 Remap 2.13 LogPolar 3 形态学操作 3.1 CreateStructuringElementEx 3.2 ReleaseStructuringElement 3.3 Erode 3.4 Dilate 3.5 MorphologyEx 4 滤波器与色彩空间变换 4.1 Smooth 4.2 Filter2D 4.3 CopyMakeBorder 4.4 Integral 4.5 CvtColor 4.6 Threshold 4.7 AdaptiveThreshold 5 金字塔及其应用 5.1 PyrDown 5.2 PyrUp 6 连接部件 6.1 CvConnectedComp

通过wtc使tuxedo与weblogic通信开发

标题:通过wtc、jolt进行tuxedo与weblogic通信开发 [评论] 作者:李振嘉(dev2dev ID:lizhenjia) (一)摘要 bea tuxedo与weblogic作为业界优秀的交易与应用服务器中间件产品,在电信,银行,金融等领域广泛应用,通常由tuxedo处理系统的核心业务,weblogic将业务应用扩展到internet平台,实现电子商务,由weblogic调用tuxedo的服务或者由tuxedo的服务调用通过weblogic部署的ejb,所以tuxedo与weblogic 之间的互连通信会经常遇到,本文通过2个例子介绍tuxedo与weblogic通信的配置与开发,两个例子分别通过wtc(weblogic tuxedo connector)、jolt实现weblogic与tuxedo通信的配置与开发.本文所有例子程序与配置均在Sun Solaris,weblogic8.1,tuxedo8.0平台上进行,如在windows等其他平台开发配置方法大同小异;另外为了减少篇幅文中涉及的例子代码没有全部罗列,只选择粘贴了关键部分的代码. (二)通过wtc进行tuxedo与weblogic通信的配置与开发 1)域间通信以及wtc介绍 Tuxedo的域间通信进程介绍 Wtc是tuxedo通过域间通信实现的,所以需要tuxedo启动用于域间通信的进程,介绍wtc之前先介绍以下几个域间通信的进程. *DMADM(DOMAIN ADMINISTRATOR SERVER) 管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ. *GWADM(GATEWAY ADMINISTRATOR SERVER)

OPENCV库函数使用说明

OPENCV(Intel Open Source Computer Vision Library)是一种数字图像处理和计算机视觉的函数库,由Intel公司微处理器实验室(Intel’s Microprocessor Research Lab)的视觉交互组(The Visual Interactivity Group)开发。它可以在Windows系统、Linux系统、MacOSx系统等操作平台上使用,也可以和其他编程工具结合,以满足不同的使用要求。使用OPENCV使用C/C++编写,包含300多个图像处理函数,有以下几个对立的子库组成: 1.CXCORE:一些基本函数(各种数据类型的基本运算等) 2.CV:图像处理和计算机视觉算法(图像处理、结构分析、运动分析、物体跟 踪和模式识别等) 3.HIGHGUI:用户交互部分(图形界面,图像视频输入输出,系统调用函数) 4.CVAUX:一些实验性的函数(三维跟踪等) 在这些库函数的支持下,用户可以直接调用滤波函数,形态学处理,图像特征提取,轮廓提取算法和跟踪算法,也可以添加自己编写的子函数,不但能完成复杂的开发任务,还可以提高效率,达到事半功倍的效果。 OPENCV的重要特性: 1.拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其他的外部库——尽管也可以使用某些外部库。 2.对非商业应用和商业应用都是免费(FREE)的。 3.为Integrated Performance Primitives(IPP)提供了透明的接口。这意味着如果有为特定处理器优化的IPP库,OPENCV将在运行时自动加载这些库。 在VC++环境中OPENCV的使用设置: Microsoft公司开发的Visual C++是一种具有高度综合性能的软件开发工具。用它开发出的程序具有运行速度快,可移植能力强等优点,在对数字图像处理进行处理时经常采用Visual C++进行编程,通过对VC进行配置,就可以在编程过程中直接使用OPENCV的函数编写代码,减少了工作量,提高了运行效率。 在OPENCV安装完成后,首先需要把它的路径加入到系统环境变量中,然后再VC菜单Tools→Options→Directories下设置Library files路径,再选择Source files,最后选择Include files,就可以加入路径,如错误!未找到引用源。所示。设置完成后,就可以新建或打开一个使用OPENCV的工程。 打开工程后,选择菜单Project→Settings,然后将Setting for选为All Configurations,再选择右边的link标签,在Object/library modules加上工程属性中使用的库,这样就可以顺利编程。

TUXEDO配置参数详解

TUXEDO配置参数详解 2007-07-10 09:39:47 大中小 TUXEDO应用系统的配置 3.1 TUXEDO应用系统的常见配置 配置文件UBBCONFIG介绍 一个TUXEDO应用系统的所有资源都在一个文本文件中进行定义,该文件称为UBBCONFIG,在配置完成后,UBBCONFIG被编译成一个二进制的文件TUXCONFIG.在TUXEDO系统启动时,从该文件中读取系统的配置信息。UBBCONFIG文件类似WINDOWS下的*.INI文件。它包括以下9大部分, 我们称之为节,RESOURCES,MACHIENS,GROUPS 这三个节必须的,其他的节是可选的。 RESOURCES(必需): 与整个系统有关的配置信息 MACHINES(必需): 一个TUXEDO应用系统可以跨越多台服务器,在该节中配置与每台服务 器有关的信息 GROUPS(必需): TUXEDO中的服务可被分为多个组,在该节中配置与组有关的信息SERVERS(可选): 与SERVER有关的信息在该节配置 SERVICES(可选): 与SERVICES有关的信息在该节配置 NETWORK(可选):与网络有关的信息在该节配置 ROUTING(可选) :路由规则在该节配置 NETGROUPS(可选):与网络分组有关的信息在该节配置 名称解释: TUXEDO应用系统 一个TUXEDO应用系统包括服务端,客户端,服务端安装在服务器上,客户端一般安装在PC 机上,从开发角度看,一个TUXEDO应用系统包括服务端程序,客户端程序,一个配置文件。此外,一个TUXEDO应用系统可以部署在一台服务器上,也可以部署在多台服务器上。SERVER: 服务端程序用C或COBAL编写,每一个程序文件编译成一个相应可执行文件,该可执行文件在运行时称为SERVER,它实际上就是一个进程。每个SERVER都有一个名字,也就是该进程的名字。为与TUXEDO应用系统的服务端区分,我们在本书中,我们用SERVER表示该进程,用服务端表示TUXEDO应用系统的服务端。 SERVICE: 在每个服务端程序中,主要是一个个的函数,在TUXEDO中称这些函数为SERVICE,一般 也称之为服务。在该SERVICE中实现业务逻辑,在客户端中调用这些SERVICE来实现各 种操作,如在前面的例子simpapp中,服务端程序为simpserv.c,它编译成可执行文件simperv, simpserv就是一个SERVER,该SERVER包括SERVICE:TOUPPER。 下面我们给出一个配置文件的例子: *RESOURCES IPCKEY 123456 MASTER simple UID 0 GID 0 PERM 0666

OPENCV函数

Opencv函数 分配图像空间: IplImage*cvCreateImage(CvSize size,int depth,int channels); size:cvSize(width,height); depth:IPL_DEPTH_8U,IPL_DEPTH_8S,IPL_DEPTH_16U, IPL_DEPTH_16S,IPL_DEPTH_32S,IPL_DEPTH_32F, IPL_DEPTH_64F channels:1,2,3or4. 注意数据为交叉存取.彩色图像的数据编排为b0g0r0b1g1 r1... 举例: //分配一个单通道字节图像 IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); //分配一个三通道浮点图像 IplImage*img2=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3); 释放图像空间: IplImage*img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); cvReleaseImage(&img); 复制图像: IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); IplImage*img2; img2=cvCloneImage(img1); 设定/获取兴趣区域: void cvSetImageROI(IplImage*image,CvRect rect); void cvResetImageROI(IplImage*image); vRect cvGetImageROI(const IplImage*image); 大部分OpenCV函数都支持ROI. 设定/获取兴趣通道: void cvSetImageCOI(IplImage*image,int coi);//0=all int cvGetImageCOI(const IplImage*image); 大部分OpenCV函数暂不支持COI.

tuxedo文件传输

TUXEDO在文件传输中的应用 发布于:软件开发网来源:Internet 作者:网络收集时间:2008-12-18 点击: 1 引言 近几年来,以交易中间件为框架基础的三层客户机/服务器模式已被广泛证实为建立开放式关键业务应用系统的最佳环境。 TUXEDO是美国BEA公司的一种交易中间件产品,它在银行、电信、邮政、金融证券等大规模关键事务处理领域中有着广泛的应用。它能够在C/S环境下整合各种异构平台,通过联机事务处理机制,保证交易的完整性和数据的一致性。BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。 BEA TUXEDO 采用三层结构的客户机/服务器模式组件软件模型,该结构利用交易中间件将应用的业务逻辑、表示逻辑和数据分为三个不同的处理层:客户为第一表示逻辑层,实现用户交互和数据表示,第二层的逻辑业务层为应用的主体,负责业务的逻辑处理,第三层数据层负责对数据库的检索、读取和更新等操作。交易中间件作为构造三层结构应用系统的基础平台,提供了两个主要功能:负责客户机和服务器间的联接和通讯;提供一个三层结构应用开发和运行的平台。由此可见,交易中间件提供了一个基础的框架去帮助你建立、运行和管理一个三层客户机/服务器模式的应用,使你不需要从零做起,大大缩短了应用开发的时间,提高了应用开发的成功率。 本文以应用TUXEDO的同步调用tpcall方式和FML编程方式为例,介绍了在Windows客户端和Unix服务器之间完成文件传输的方法。客户端调用VC 制作的传输文件的tuxedo动态链接库,实现Windows客户端与Unix服务器端传输文件(包括上传和下载文件两种方式)的实现方法。 2 客户端应用TUXEDO实现文件传输方法 在客户端,首先设置客户端与服务器端在文件传输中文件块的大小、文件的块标识等基本信息,将字节数比较大的文件分为很多小块,利用TUXEDO的同步调用tpcall方式循环调用后台的文件处理服务,将字节数较大的文件按着块的大小分多次传输到UNIX后台。下面以下载文件为例讲解使用tuxedo同步调用tpcall方式完成文件传输的例子。 首先利用TUXEDO的tpalloc申请需要使用的发送和接收缓存,使用Fchg32函数在缓存中放入服务器端需要的域值:文件块的大小、文件的标识等基本信息。 SndBuf = (FBFR32 *)tpalloc("FML32", NULL, 1024); /* 申请发送的缓存 */

OPenCV3.2中Mat对象常用函数属性总结

OPenCV3.2中Mat对象常用函数属性总结Mat对象是OpenCV2.0之后引进的图像数据结构,它能自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。 在使用Mat对象时,有以下四个要点需要注意: 1、输出图像的内存是自动分配的 2、使用OpenCV的C++接口,不需要考虑内存分配问题 3、赋值操作和拷贝构造函数只会复制头部分 4、使用clone与copyTo两个函数实现数据完全复制 下面我们就具体介绍一下公共成员函数和公共属性。 公共成员函数: 1、cv::Mat::Mat ( int rows, int cols, int type ) 参数: rows2D数组中的行数 cols2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。

2、cv::Mat::Mat ( Size size, int type ) 参数: size 2D数组大小:Size(cols, rows)。在Size()构造函数中,行数和列数以相反的顺序排列。 type 数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。 3、cv::Mat::Mat ( int rows, int cols, int type, const Scalar & s ) 参数: rows2D数组中的行数。 cols 2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。s 初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值, 使用赋值运算符Mat::operator=(const Scalar& value) 。 4、cv::Mat::Mat ( Size size, int type,

TUXEDO中间件介绍及应用

TUXEDO中间件介绍及应用 一、前言 首先介绍一下什么是中间件?中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。 世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性: ●缩短应用的开发周期 ●节约应用的开发成本 ●减少系统初期的建设成本●降低应用开发的失败率●保护已有的投资●简化应用集成 ●减少维护费用 ●提高应用的开发质量●保证技术进步的连续性●增强应用的生命力 Tuxedo是第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于A T&T的贝尔实验室开发完成的,但Tuxedo在很长一段时期里只是实验室产品。直到BEA公司1995年收购Tuxedo后,使Tuxedo现已经发展成为交易中间件领域事实上的标准。 TUXEDO是在企业、Internet 这样的分布式运算环境中,开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。 二、TUXEDO的组件软件模型 TUXEDO采用三层结构的组件软件模型。 图1 BEA TUXEDO 的组件软件模型概要

叱咤风云tuxedo企业级运维实战如何用好全局事务

第9章如何用好全局事务 9.1 什么是全局事务 全局事务是由资源管理器管理和协调的事务,可以跨越多个数据库和进程。事务管理器一般使用XA二阶段提交协议与“企业信息系统(EIS)”或数据库进行交互。 也就是当一个事务需要跨越多个数据库时,需要使用全局事务。例如,一个事务中可能更新几个不同的数据库。对数据库的操作发生在系统的各处,但必须全部被提交或回滚。此时,一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与全局事务相关的其他数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。 在一个涉及多个数据库的全局事务中,为保证全局事务的完整性,由交易中间件控制数据库做两阶段提交是必要的。但典型的两阶段提交,对数据库来说事务从开始到结束(提交或回滚)时间相对较长,在事务处理期间数据库使用的资源(如逻辑日志、各种锁),直到事务结束时才会释放。因此,使用典型的两阶段提交相对来说会占用更多的资源,如果网络条件不好,如低速网、网络颠簸频繁,情况会更为严重。 9.2 本地事务的优缺点 本地事务容易使用,但也有明显的缺点:它们不能用于多个事务性资源。例如,使用JDBC连接事务管理的代码不能用于全局的JTA事务中。另一个缺点是局部事务趋向于侵入式的编程模型。 9.3 Tuxedo对事务的控制与管理 当客户端连接到Tuxedo并创建一个全局事务时,TM(Transaction Manager,事务管理器)就会在公告板(BB)里面创建一个事务,由TMS向GTT(Global Transaction Table,全局事务表,里面包含当前事务的状态信息)中插入一个条目,然后分配一个GTRID(Global Transaction Identifier,全局事务标识符)来对该事务进行跟踪。 Tuxedo的事务管理由TMS完成,TMS把各种RM接入到Tuxedo中的分布式计算中来,并对RM中执行的事务进行跟踪和两阶段提交。 Tuxedo对事务的管理工作主要包括创建TMS、创建TLOG、运行时事务的监控和迁

快速学习OPENCV常用函数

访问图像元素如下: 1、针对各种图像(包括4-通道)和矩阵的函数(cvGet2D,cvSet2D),但是它们都很慢. (img->origin=IPL_ORIGIN_TL)或者是左下角(img->origin=IPL_ORIGIN_BL) 假设有8-bit1-通道的图像I(IplImage*img): I(x,y)~((uchar*)(img->imageData+img->widthStep*y))[x] 假设有8-bit3-通道的图像I(IplImage*img): I(x,y)blue~((uchar*)(img->imageData+img->widthStep*y))[x*3] I(x,y)green~((uchar*)(img->imageData+img->widthStep*y))[x*3+1] I(x,y)red~((uchar*)(img->imageData+img->widthStep*y))[x*3+2] 如果增加点(100,100)的亮度30,那么可以: CvPoint pt={100,100}; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+1]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+2]+=30; CvPoint pt={100,100}; uchar*temp_ptr=&((uchar*)(img->imageData+ img->widthStep*pt.y))[x*3]; temp_ptr[0]+=30; temp_ptr[1]+=30; temp_ptr[2]+=30; 假设有32-bit浮点数,1-通道图像I(IplImage*img): I(x,y)~((float*)(img->imageData+img->widthStep*y))[x] 现在,通用方法:假设有N-通道,类型为T的图像: I(x,y)c~((T*)(img->imageData+img->widthStep*y))[x*N+c] 或者你可使用宏CV_IMAGE_ELEM(image_header,elemtype,y,x_Nc) I(x,y)c~CV_IMAGE_ELEM(img,T,y,x*N+c) 2、访问矩阵元素 设有32-bit浮点数的实数矩阵M(CvMat*mat): M(i,j)~((float*)(mat->data.ptr+mat->step*i))[j] 设有64-bit浮点数的复数矩阵M(CvMat*mat): Re M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2] Im M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2+1]

Tuxedo的工作原理及Toupper功能讲解

BEA Tuxedo中间件应用初探 本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。 随着中间件在大型应用系统中的日益普及,目前各类中间件充斥着市场,它们在银行、电信、金融等大规模关键事务领域中的整合各种异构平台、保证交易完整性等方面表现出了超强的能力。BEA Tuxedo就是其中一款著名的交易中间件,本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。 工作原理 Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。 Tuxedo可以有效地整合企业异构C/S系统,实现大规模的关键业务处理和分布式事务管理,从而为企业提供一个可靠的、高性能的、易维护的三层分布式计算机环境。图1展示了一个基本Tuxedo系统的组成和工作原理。 图一 ①Client向System/T发出查询请求,以找到Server消息队列的地址; ②Client根据找到的入口地址将请求发送到Server的消息队列中; ③Server处理请求,并将结果返回给Client的消息队列。 System/T是Tuxedo系统的核心,它实现了Tuxedo的所有功能和特征,如C/S 数据流管理、服务请求的负载均衡、全局事务管理以保证交易的完整性、同步/异步服务请求、两阶段提交以确保消息的发送等。System/T提供了一个类似公

告栏的服务,用以发布C/S计算机环境中所有服务器、服务和客户机的信息,供其它分布式计算的参与者使用。下面笔者将通过一个大写字母转换的简单例子,讲述Tuxedo应用程序工作的基本原理和开发方法。 应用介绍 Simpapp是Tuxedo系统自带的一个例子,它由服务器和客户端程序两部分组成。服务器simpserv实现了一个TOUPPER服务,它从客户程序接收一个字符串,将它转换成大写后,传回客户端。整个工作流程可以用图2表示。 图二 客户机首先收集要转换成大写的字符串,然后连接到System/T并将字符串放入缓冲区,接着调用服务器上的TOUPPER服务,最后从服务器响应缓冲区中取出数据并退出System/T。 下面是服务程序simpserv.c的源代码: 可能你已经注意到了,该程序没有提供main方法。事实上,Tuxedo不要求程序员编写main方法,以便让他们把精力集中在业务逻辑的编写上,在编译时,Tuxedo系统会为它自动创建。 TPSVCINFO是Tuxedo记录服务调用信息的一个结构体,data域是保存请求数据的缓冲区,len域记录了data域的长度。 客户程序Simpcl.c是服务调用的发起者,它从命令行接收参数,通过tpinit()调用连接到System/T,通过tpalloc()调用分配一个字符串类型的缓冲区,通过

Tuxedo完全操作手册

一、tuxedo的配置 1、展开tuxedo包,例如:/home/tuxedo 2、配置ubbconfig文件 在江苏建行是jsccb.ubb *RESOURCES *RESOURCES节包含整个应用范围的信息。本节必须在配置文件第一节,不可缺少。 参数意义 *RESOURCES *RESOURCES节 IPCKEY 共享内存id UID TUXEDO管理员用户id GID TUXEDO管理员用户id PERM TUXEDO管理员组用户的权限 MAXACCESSERS 服务端和客户端的最大进程数 MAXSERVERS 限制可以启动服务总数 MAXSERVICES 限制可以发布交易总数 MASTER 指出主控节点的逻辑名,第二个是备份节点 MODEL 应用构架,MP表示多机 OPTIONS LAN,MIGRA TE表示是一个网络应用,服务可以移植到替代处理器上 SECURITY 安全级别(5个) AUTHSVC 客户端可以通过交易“AUTHSVC”获得认证 NOTIFY DIPIN,客户端通过dip-in收到广播通知 SYSTEM_ACCESS PROTECTED,NO_OVERRIDE,应用代码不得干扰共享内存LDBAL 设Y则进行负载平衡 MAXBUF[S]TYPE 数据缓冲类型及子类的最大数 SCANUNIT 内部时间间隔单位,单位是秒 SANITYSCAN 检索公告牌的内部时间间隔,单位是SCANUNIT BLOCKTIME 交易超时时间,单位是SCANUNIT BBLQUERY DBBL查询所有BLL的时间间隔 DBBLWAIT DBBL等待BBL回应的超时时间 MAXCONV 同时最大会话数 jsccb.ubb的实例

第四章:TUXEDO应用系统的管理

第四章:TUXEDO应用系统的管理 4.1 TUXEDO提供的系统管理工具 当一个TUXEDO应用系统投入运行时,TUXEDO系统管理员要对它进行监控,管理,根据系统的运行情况做相应的参数调整。有时候还要动态修改配置,发布新的服务等等,TUXEDO提供了很丰富的管理工具和管理编程接口。可以很方便的完成这些管理任务。下面对管理工具和管理编程接口分别进行介绍。 TUXEDO提供以下管理工具 1.基于WEB的图形化管理工具:用普通的WEB 浏览器比如Netscape或Microsoft 的Explorer可以从Internet/Intranet 的任意一个节点来运行该图形界面管理工具。对 系统进行管理配置。 2. 基于字符界面的管理工具:TUXEDO提供TMADMIN,DMADMIN等命令行管理工具。 TUXEDO提供以下管理编程接口 1.MIB编程接口:TUXEDO 提供C 语言的管理API ,用户能够用此编写出适合自己特殊需 求的管理工具 2.通过SNMP与其他管理工具(HP OpenView 等)互联, TUXEDO 的关联产品 BEA MANAGER 通过网络管理协议 SNMP和TUXEDO 的管理信息库 MIB 可以把TUXEDO 对应用程序的管理集成到一般的网络、数据库系统管理工具中,比如 OpenView, NetView 等。 TUXEDO应用系统的管理任务 通过以上的管理工具,TUXEDO可以有效地管理消息流程和服务请求,启动和停止服务进程,根据变化的负荷复制服务进程,动态地广播、撤消服务进程中的服务。并且可以在客户不用退出执行的情况下,动态的增加新的服务器、服务器组、服务器以及服务。利用命令行或图形管理界面TUXEDO还可以动态的进行负载平衡,数据依赖路由、网络用户的管理、队列的管理、存取资源管理器以及系统的启动、重启和恢复。

OpenCV最基础的图像处理的例子

?什么是OpenCV ?开源C/C++计算机视觉库. ?面向实时应用进行优化. ?跨操作系统/硬件/窗口管理器. ?通用图像/视频载入、存储和获取. ?由中、高层API构成. ?为Intel?公司的Integrated Performance Primitives (IPP) 提供了透明接口. ?特性: ?图像数据操作(分配,释放, 复制, 设定, 转换). ?图像与视频I/O (基于文件/摄像头输入, 图像/视频文件输出). ?矩阵与向量操作与线性代数计算(相乘, 求解, 特征值, 奇异值分解SVD). ?各种动态数据结构(列表, 队列, 集, 树, 图). ?基本图像处理(滤波, 边缘检测, 角点检测, 采样与插值, 色彩转换, 形态操作, 直方图, 图像金字塔). ?结构分析(连接成分, 轮廓处理, 距离转换, 模板匹配, Hough转换, 多边形近似, 线性拟合, 椭圆拟合, Delaunay三角化). ?摄像头标定 (寻找并跟踪标定模板, 标定, 基础矩阵估计, homography估计, 立体匹配). ?动作分析(光流, 动作分割, 跟踪). ?对象辨识 (特征方法, 隐马可夫链模型HMM). ?基本GUI(显示图像/视频, 键盘鼠标操作, 滚动条). ?图像标识 (直线, 圆锥, 多边形, 文本绘图) ?OpenCV 模块: ?cv - OpenCV 主要函数. ?cvaux - 辅助(实验性) OpenCV 函数. ?cxcore - 数据结构与线性代数算法. ?highgui - GUI函数. 资料链接 ?参考手册: ?/docs/index.htm ?网络资源: ?官方网页: https://www.wendangku.net/doc/c814301093.html,/technology/computing/opencv/?软件下载: https://www.wendangku.net/doc/c814301093.html,/projects/opencvlibrary/ ?书籍: ?Open Source Computer Vision Library by Gary R. Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006). ?视频处理例程(位于/samples/c/目录中): ?色彩跟踪: camshiftdemo ?点跟踪: lkdemo

opencv最基础的图像处理

openCV——几个实用函数 2010年12月20日星期一 09:18 1. cvSmooth:各种方法的图像平滑 void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0 ); src 输入图像. dst 输出图像. smoothtype 平滑方法: . CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) - 对每个象素的param1×param2 领域求和。如果邻域大小是变化的,可以事先利用函数cvIntegral 计算积分图像。 . CV_BLUR (simple blur) - 对每个象素param1×param2邻域求和并做尺度变换 1/(param1.param2). . CV_GAUSSIAN (gaussian blur) - 对图像进行核大小为 param1×param2 的高斯卷积 . CV_MEDIAN (median blur) - 对图像进行核大小为 param1×param1 的中值滤波 (i.e. 邻域是方的). . CV_BILATERAL (双向滤波) - 应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2. 平滑操作的第一个参数. param2 平滑操作的第二个参数. 对于简单/非尺度变换的高斯模糊的情况,如果 param2的值为零,则表示其被设定为param1。 param3

对应高斯参数的 Gaussian sigma (标准差). 如果为零,则标准差由下面的核尺寸计算: sigma = (n/2 - 1)*0.3 + 0.8, 其中 n=param1 对应水平核, n=param2 对应垂直核. 对小的卷积核 (3×3 to 7×7) 使用如上公式所示的标准 sigma 速度会快。如果 param3 不为零,而 param1 和 param2 为零,则核大小有sigma 计算 (以保证足够精确的操作). 函数 cvSmooth 可使用上面任何一种方法平滑图像。每一种方法都有自己的特点以及局限。 没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvaplace相似)和32位浮点数到32位浮点数的变换格式。 简单模糊和高斯模糊支持 1- 或 3-通道, 8-比特和 32-比特浮点图像。这两种方法可以(in-place)方式处理图像。 中值和双向滤波工作于 1- 或 3-通道, 8-位图像,但是不能以 in-place 方式处理图像. 2.IplImage结构 由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage结构具体定义如下: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/

Tuxedo

Tuxedo配置维护手册 Tuxedo作为系统的中间件,其配置主要包括:资源文件的配置和应用环境的配置;其管理和维护主要包括:系统的启动和关闭、日志的跟踪查看工作。 Tuxedo应用系统的配置 一、应用系统的资源配置,全都包含在两个资源配置文件中(ubbco nfig 和dmco nfig ),在这两个配置文件中包含了系统所有的应用资源(文件)。 1、对于ubbco nfig 文件,可以任意使用一个文件名(如:ubb.txt ),使用一种文本编辑工具,将应用系统的资源分类进行配置,相关进程启动数量等等都应该配置在其中,然后设置环境变量TUXCONFIG ,使用系统命令:tmloadcf来将文本文件ubb.txt ,转化生成环境变量TUXCONFIG 制定的二进制文件。在该文件中主要包含了几个参数的设置:系统所使用的共享内存的键值IP CKEY,针对workstation 客户端的监听进程的端口(WSL ),多台机器之间互连(登记中心与各网关)的网络地址和端口(NADDR , NLSADDR ),数据依赖路由的设定等等。 详细的内容参看《Ubbconfig 配置.doc》参看模版来实现移植或添加应用进程等等。 2、对于dmco nfig文件,可以任意使用一个文件名(如:dm.txt ),使用一种文本编辑工具,将应用系统的多域互联及互相调用的关系进行配置,包括多域之间互联的地址和端口,然后使用系统命令:dmloadcf来将文本文件dm.txt,转化成环境变量BDMCONFIG 所指定的二进制文件。在该文件中主要包含了在多个域互连时用到的一些设置,主要包括:各个域的定义,各个域通讯连接的地址和端口(NWADDR ),本地服务(DM_LOCAL_SERVICES )和远端服务(DM_REMOTE_S ERVICES)以及数据依赖路由等等。 详细的内容参看《dmconfig 配置.doc》参看模版来实现移植或添加应用远端或本地服务等等。 3、客户端代码:是指使用编译工具buildclie nt 编译生成的执行代码。在编译过程中,当使用编译参数:-w时,将连接库wsc等,生成的执行代码将调用远端的服务,即通过环境变量:WSNADDR 来查找相应的WSL的地址和端口;当编译没有使用参数:—时,生成的执行代码将调用本机的服务,通过环境变量:TUX CONFIG来实现调用相应的服务,如果要调用异域(如:代理集中点到登记中心)的服务,就需要在dmconfig文件中配置和公布服务。 4、服务进程:是指使用编译工具buildserver 编译生成的执行代码,不要出现ma in ()函数,启动和关闭要使用Tuxedo的工具:tmboot和tmshutdown 二、应用系统的环境配置,即系统运行时的环境变量的设置一般的这些环境变量都放在用户注册是的.p rofile文件中,也可以根据应用放置在专门的文件中,如:sete nv等等,环境的设置主要包括:TUXDIR :其值为TUXEDO 的安装目录。 例如:TUXDIR=/home/tuxedo 或TUXDIR=/home/bea TUXCONFIG :其值为含有绝对路径二进制的资源配置文件的文件名,系统启动、监控、关闭等等都要用到此环境变量,当客户端的代码要调用应用系统的本机服务时也需要使用此变量。 例如:TUXCONFIG=/home/work/etc/tuxconfig BDMCONFIG :其值为含有绝对路径二进制的多域配置文件的文件名,在使用多域间互联时要用到此环境变量。 例如:BDMCONFIG=/home/work/etc/dmcomfig PRINTERDIR :传输文件的放置目录,主要是针对文件传输来使用的。 例如:PRINTERDIR=/home/work/print FTP_BLOCK_SIZ :针对文件传输的,每次传输的快的大小,如果没有设置,则系统默认为1024。 例如:FTP_BLOCK_SIZE=10240 ; export FTP_BLOCK_SIZE WSNADDR :客户端(workstation )设定的,指向服务器端WSL监听的地址和端口,当客户端的代码要调用系统的远端服务时需要此环境变量。

相关文档