包含opencvcopyto的词条

本篇文章给大家谈谈opencvcopyto,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

OpenCV中怎么使用cv::

1、使枯塌用准备:

using namespace cv;

2、Mat的声明

Mat m=Mat(rows, cols, type);

Mat m=Mat(Size(width,height), type);

Mat A=Mat(3,4,CV_32FC1);

Mat B=Mat(4,3,CV_32FC1);

3、Mat赋值

vectorPoint3fv;//suppose it is already full

Mat m1=Mat(v,true);//boolean value true is necessary in order to copy data from v to m1

CvMat *p1=====??

Mat m2=Mat(p1);

4、Mat之间运算

MatC=2*A*B;

Mat C=C.inv();//Now C is its own inverse matrix

Mat D=A.t();//D is the transposed matrix of A

Mat a=Mat(4,1, CV_32FC3);//a is 4x1, 3 channels

Mat b=a.reshape(1);//b is 4x3, 1 channel

5、单通道Mat元素读写

Mat a=Mat(4,3, CV_32FC1);

floatelem_a=a.atfloat(i,j);/枝败者/access element aij, with i from 0 to rows-1 and j from 0 to cols-1

Point p=Point(x,y);

floatelem_a=a.atfloat(p);//Warning: y ranges from 0 to rows-1 and x from 0 to cols-1

6、多通道Mat元素读写

templatetypename _Tp _Tp at(int y,int x); // cxcore.hpp (868)

templatetypename _Tpconst _Tp at(int y,int x)const; // cxcore.hpp (870)

templatetypename _Tp _Tp at(Point pt); /猛薯/ cxcore.hpp (869)

templatetypename _Tpconst _Tp at(Point pt)const; // cxcore.hpp (871)

// defineded in cxmat.hpp (454-468)

typedefVecfloat,2Vec2f;// cxcore.hpp (254)

// we can access the element like this :

Mat m(Size(3,3), CV_32FC2 );

Vec2f elem = m.atVec2f( row , col );// or m.atVec2f( Point(col,row) );

elem[0]=1212.0f;

elem[1]=326.0f;

float c1 = m.atVec2f( row , col )[0];// or m.atVec2f( Point(col,row) );

float c2 = m.atVec2f( row , col )[1];

m.atVec2f( row, col )[0]=1986.0f;

m.atVec2f( row, col )[1]=326.0f;

7.选取Mat上指定区域方法

Mat src; Rect rect;

Mat dst = src(rect); 或者Mat dst(src,rect);

如何编译 opencv动态链接库

在一个项目中需要用到OpenCV,刚开始使用了OpenCV的动态链接库,这样,在移动可执行程序时还必须将OpenCV动态支持库一起搬移,很是麻烦。所以,最终选择OpenCV静态链接库,这样程序移植运行就方便了很多。

需要编译成静态库以便于应用程序链接。

网上有的教程中写的在VC++2010下安装OpenCV2.1时用到了TBB库,而我在编译链接自己的程序后需要用到TBB.dll。本人设计的目的就是要做一个独立的界面程序,不需要携带其他第三方库。经过一段时间的努力最终找到了编译OpenCV2.1静态库的方法。

需要的工具环境及文件:

-------------------------------------------------------------------------------------------------------------

1、Windows XP

2、VC++2010(VS2010)

3、为编译OpenCV源码包(我下载的有:OpenCV2.1.0,OpenCV2.3.0及OpenCV2.4.4)

4、CMake2.8.9

说明:OpenCV各版本官方下载地址:opencv.org/

cmake-2.8.9下载地址:ishare.iask.sina.com.cn/download/explain.php?fileid=35025936

--------------------------------------------------------------------------------------------------------------

以OpenCV2.1.0编译静态库为例

CMake配置

-------------------------------------------------------------------------------------------------------------

打开CMake并设置:

Where is the rource code :OpenCV源代码所在的文件夹

Where to build the binaries:CMake配置好得到的文件放在位置(我的:E:\OpenCV2.1.0-prj)

然后点击configure,选择"Visual Studio 10"。然后确定。

等待configure完成,会出现很多红色的选项,因为主要是生成OpenCV的库,所以只需保留某些选项:肢烂搏

去掉BUILD_NEW_PYTHON_SUPPORT,BUILD_SHARED_LIBS, BUILD_TESTS

勾选OPENCV_BUILD_3RDPARTY_LIBS, WITH_TBB,WITH_JASPER, WITH_JPEG,

WITH_PNG, WITH_TIFF选项,

然后再点击configure,如下图:

提示TBB_INCLUDE_DIR找不到,因为我们不需要TBB库,所历腊以忽略,再一次点击configure。

等待配置完成,最后点击generate,完成后关闭CMake。

-------------------------------------------------------------------------------------------------------------

VC++2010编译静态库

-------------------------------------------------------------------------------------------------------------

进入E:\OpenCV2.1.0-prj目录,使用VC++2010打开.sln文件,打开项目管理器

这时候会看到

解决方案历祥中有很多小项目存在。

注:这时我们右键任意点击一个子项目(如cv),选择属性,可以在配置属性下的常规项目中看到,配置类型为

静态库(lib)。

按住ctrl键,选中除过ALL_BUILD, INSTALL, ZERO_CHECK,

uninstall四个项目的其他所有项目,在菜单中选择项目-属性,打开配置属性-c/c++-代码生成选项,在右侧窗口中的运行时库中选择多线程调试(/MTd),然后确认。

说明:这里有四个选项(/MT, /MTd, /MD,

/MDd),前两个一组,为静态链接运行时库,运行时不需要运行时库的支持,代码直接插入到程序中去;后两个一组,为动态链接运行时库,运行时需要msvcr90.dll或msvcp90.dll支持。

我们先编译Debug版的OpenCV静态库,在解决方案"opencv"(22个项目)上单击右键,选择重新生成解决方案,此时便开始编译OpenCV库了,等编译结束会提示完成16个,失败4个:

这四个项目生成的是exe程序,不需要管他们。到这步我们已经生成了Debug版本的静态库!

然后我们用相同的方式生成Release版的库,在之前的基础上只需要将选项选择多线程/MT,再进行编译。编译时警告很多,直接忽略!

注意:/MT即是Release版本,/MTD即是Debug版本。

最终我们需要的静态库就存在:E:\OpenCV2.1.0-prj/lib 和 E:\OpenCV2.1.0-prj/3rdparty/lib

两个目录,我们编译好的库就在这两个文件夹下。分别

将E:\OpenCV2.1.0-prj/3rdparty/lib中Debug

下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Debug 文件中。

将E:\OpenCV2.1.0-prj/3rdparty/lib中Release下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Release文件中。

opencv 中的cvcopy函数参数问题!!!!

cvcopy : 拷贝一个数组给另一个数组 void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL ); src 输入数组。 dst 输出数组。 mask 操作掩码是8比特单通道的数组,它历咐指定了输出数组中被改变的元素。 函数cvCopy从输入数组中复制选定的成分到输出数组: 如果mask(I)!=0,则dst(I)=src(I)。 如果输入输出数组中的一个是IplImage类型的话,其ROI和COI将被使用。输入输出数组肢大纯必须是同样的类型、维数和大小。仿顷函数也可以用来复制散列数组(这种情况下不支持mask)。

[img]

关于opencvcopyto和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表