当前位置: 首页 > news >正文

网站建设后期服务收费标准WordPress的好处

网站建设后期服务收费标准,WordPress的好处,wordpress 主题更新,做外贸网站费用文章目录 一、OPNECV元素1.CvPoint2、模板类Size模版类Rect模版类RotatedRect模版类 二、MAT1.使用(nrows, ncols, type)#xff0c;初始化2维矩阵如果需要深拷贝#xff0c;则使用clone方法。 三、Vec类 一、OPNECV元素 1.CvPoint 为了方便使用#xff0c;opencv又对常用的… 文章目录 一、OPNECV元素1.CvPoint2、模板类Size模版类Rect模版类RotatedRect模版类 二、MAT1.使用(nrows, ncols, type)初始化2维矩阵如果需要深拷贝则使用clone方法。 三、Vec类 一、OPNECV元素 1.CvPoint 为了方便使用opencv又对常用的类型进行了定义 typedef Point_int Point2i; typedef Point2i Point; typedef Point_float Point2f; typedef Point_double Point2d;同理还有Point3_只不过它是一个3维点(x,y,z)而已。它的常用类型是 typedef Point3_int Point3i; typedef Point3_float Point3f; typedef Point3_double Point3d;2、模板类 Size模版类 能够访问的成员变量是height和width。还定义了area函数来求面积。其他的操作基本都是类型转化函数。 typedef Size_int Size2i; typedef Size2i Size; typedef Size_float Size2fRect模版类 。它是由左上角点和长度、宽度定义的。在opecv中一般定义为左开右闭区间。 有意思的是这个类竟然也提供了一个RectPoint的函数作用是对矩形的偏移还有一个Rect Size的函数在左上角不变的情况下重新调整矩形的大小。其他的操作还有与和|是求两个矩形的交集和并集 RotatedRect模版类 除了基本的矩形之外opecv还提供了一个可以旋转的矩形RotatedRect它是由中心、变长、旋转角度决定的。你可以访问它的这三个成员也可以使用points函数返回它的4个顶点使用boundingRect求出它的外接矩形非旋转下面是一个例子 int main(void) {Mat bg(200,200,CV_8UC3,Scalar(0));imshow(,bg);RotatedRect rRect(Point2f(100,100),Size(100,100),40); Point2f vertices[4];rRect.points(vertices);for(int i 0; i 4;i)line(bg,vertices[i],vertices[(i1)%4],Scalar(0,255,0));Rect brect rRect.boundingRect();rectangle(bg,brect,Scalar(255,0,0));imshow(,bg);waitKey();}二、MAT Mat。Mat是opencv中的一种非常重要的数据结构当刚开始使用时我仅仅把它当做一个储存图像的数据结构后来才慢慢理解它不仅可以储存二维矩阵也可以储存高维矩阵这在模式识别、机器学习中是非常常用的。对于这类问题我们就没有必要自己手动分配内存了直接使用它们就可以了。这个类的内容很多但opencv的帮助手册很好的帮我们理清的其中的内容。 typedef Matxfloat, 1, 2 Matx12f; typedef Matxdouble, 1, 2 Matx12d; ... typedef Matxfloat, 1, 6 Matx16f; typedef Matxdouble, 1, 6 Matx16d; typedef Matxfloat, 2, 1 Matx21f; typedef Matxdouble, 2, 1 Matx21d; ... typedef Matxfloat, 6, 1 Matx61f; typedef Matxdouble, 6, 1 Matx61d; typedef Matxfloat, 2, 2 Matx22f; typedef Matxdouble, 2, 2 Matx22d; ... typedef Matxfloat, 6, 6 Matx66f; typedef Matxdouble, 6, 6 Matx66d;如果要使用灵活的矩形还是用Mat int main(void) {int sz[]{4,5,6};Mat img(3,sz,CV_8U);//3维数组coutimg.dimsendl;coutimg.size[0]endl;coutimg.size[1]endl;coutimg.size[2]endl;coutimg.step[0]endl;coutimg.step[1]endl;coutimg.step[2]endl;//遍历每个元素for(int i 0; i 4;i){for(int j 0; j 5;j){for(int k 0; k 6;k){cout(int)*(B.data B.step[0]*i B.step[1]*j B.step[2]*k)endl;}}}return 0; }下面我们主要是看看Mat提供的函数。 首先是构造函数光构造函数就有很多种这里介绍几种常用的方式 1.使用(nrows, ncols, type)初始化2维矩阵 // 创建一个7*7的2通道浮点矩阵通常这样的矩阵用来表示复矩阵 Mat M(7,7,CV_32FC2,Scalar(1,3)); //改变为100*60的15通道uchar矩阵原先的数据将会被释放 M.create(100,60,CV_8UC(15)); 创建高维矩阵 //创建100*100*100的3维矩阵 int sz[] {100, 100, 100}; Mat bigCube(3, sz, CV_8U, Scalar::all(0)); 下面是一些简单的对整行、整列的操作 // 第5行*3 第3行这样的操作在线性代数中很常见 M.row(3) M.row(3) M.row(5)*3;// 把第7列拷贝到第1列 // M.col(1) M.col(7); // 不能这样写 Mat M1 M.col(1); M.col(7).copyTo(M1); 用源图像的一部分创建新图像 // 创建一个320*240的图像 Mat img(Size(320,240),CV_8UC3); // 选择感兴趣区域 Mat roi(img, Rect(10,10,100,100)); // 将区域改为绿色原图像也会发生修改 roi Scalar(0,255,0);int main(void) {Mat A Mat::eye(5,5,CV_8U);Mat B A(Range::all(),Range(1,3));B.setTo(100);for(int i 0; i 5;i){for(int j 0; j 5;j){cout(int)A.atuchar(i,j)endl;}}return 0; }如果需要深拷贝则使用clone方法。 对于初始化Mat还有其他的一些方法 比如Matlab风格的 zeros(), ones(), eye() M Mat::eye(M.rows, M.cols, CV_64F); Mat M (Mat_(3,3) 1, 0, 0, 0, 1, 0, 0, 0, 1); 如果是处理“外来”的数据那么则在构造函数中加上data则会非常方便的将外来数据转化为Mat结构 void process_video_frame(const unsigned char* pixels,int width, int height, int step) {Mat img(height, width, CV_8UC3, pixels, step);GaussianBlur(img, img, Size(7,7), 1.5, 1.5); }double m[3][3] {{a, b, c}, {d, e, f}, {g, h, i}}; Mat M Mat(3, 3, CV_64F, m).inv();特别的对于与opencv1.X中的IplImage结构的交互 IplImage* img cvLoadImage(greatwave.jpg, 1); Mat mtx(img); // convert IplImage* - Mat CvMat oldmat mtx; // convert Mat - CvMat读入图片image将image于result关联起来。OpenCV中一个重要的特点就是你不必事先指定图像的长、宽、像素深度等信息库函数会自动帮你完成。然后对image图像进行滤波显示滤波以后result图像的结果注意不是image的结果。 对于图像result程序中提供3种方式与图像image关联第一种是是用“”第二种是用copyTo第三种使用clone。运行代码可以发现当使用“”时对image的滤波会导致result的图像改变而使用clone或者copyTo不会引起result的改变。 原因是什么呢因为使用“”时并没有复制新的数据而只是让result指向image。它们指向的是内存中的同一份数据。等号操作以后image的引用计数1而已。这就是所谓的“浅拷贝”。而copyTo则是把矩阵的每个元素都重新拷贝给了result。copyTo不仅拷贝了矩阵元素值还复制了矩阵的一些其他信息。它们是所谓的“深拷贝”。 三、Vec类 下面介绍Vec类它其实是元素较少的向量。 typedef Vecuchar, 2 Vec2b; typedef Vecuchar, 3 Vec3b; typedef Vecuchar, 4 Vec4b; typedef Vecshort, 2 Vec2s; typedef Vecshort, 3 Vec3s; typedef Vecshort, 4 Vec4s; typedef Vecint, 2 Vec2i; typedef Vecint, 3 Vec3i; typedef Vecint, 4 Vec4i; typedef Vecfloat, 2 Vec2f; typedef Vecfloat, 3 Vec3f; typedef Vecfloat, 4 Vec4f; typedef Vecfloat, 6 Vec6f; typedef Vecdouble, 2 Vec2d; typedef Vecdouble, 3 Vec3d; typedef Vecdouble, 4 Vec4d; typedef Vecdouble, 6 Vec6d;它支持加、减、数乘、相等、不等、求范数等运算。 Scalar_类其实是用Vectp,4派生下来的也就是说它是一个4元组 typedef Scalar_Scalar; 他通常用来传递像素。 Range类用来指定连续的子序列。比如矩阵的一部分比较简单我们直接看定义 class CV_EXPORTS Range { public:Range();Range(int _start, int _end);Range(const CvSlice slice);int size() const;bool empty() const;static Range all();operator CvSlice() const;int start, end;};
http://www.w-s-a.com/news/389088/

相关文章:

  • 网站做区块链然后往里面投钱品牌设计公司收费标准
  • 2022互联网+创新创业项目呼和浩特企业网站排名优化
  • 电子商务类网站建设山西自助建站系统怎么用
  • odoo做网站网站设置专栏有什么好处
  • 局域网内个人网站建设查询企业的网站有哪些
  • 网站建设属于技术开发吗网页制作团队
  • 做家常菜的网站哪个好哪个网站做图片外链
  • 眼科医院网站设计怎么做6深圳宝安是什么风险等级
  • 网站制作容易吗logo免费生成网站
  • 建设厅官方网站下载专区网络托管公司
  • 祥云平台官方网站网线制作实验原理
  • 把网站做成app的软件下载国外做兼职的网站有哪些
  • 网站建设 海豚弯专业的网站开发服务商
  • 那个网站有免费模板中国家装公司十大排名
  • 中铁建设集团有限公司门户网站余杭区建设规划局网站
  • 天猫网站建设的目标是什么做网站常见问题模板
  • 做php网站需要什么软件天津建设网官方网站
  • 南漳网站开发上海网站推广方法
  • 深圳seo网站大连旅顺房价
  • dede网站 地图什么做有没有做黑市网站
  • 做网站参考文献域名如何做网站
  • 怎么选择网站开发英文网站建设用途
  • 怎样做电子商务网站织梦生成手机网站
  • 公司网站建设选什么服务器网站里怎样添加关键词
  • 深圳建设局网站深业中城绿化项目营销型网站开发流程包括
  • 找销售的网站九江市建设项目服务中心
  • 东原ARC网站建设公司合肥seo网站推广外包
  • 那个网站是做房产中介的网站制作软件小学
  • 做网页怎么建站点视频解析网站
  • 做网站的系统设计网站设计论文前言