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

网站没备案可以做商城吗上海seo推广整站

网站没备案可以做商城吗,上海seo推广整站,怎么做带购物功能的网站,网站如何做ins链接分享一、Mat类知识点: 1、Mat无参构造对象 (1)、Mat(); (2)、调用无参构造&#xff0c;不为对象成员变量(数据指针data)分配内存。 (3)、Mat的成员变量和成员函数都是public类型。 (4)、测试代码: cv::Mat m1;if (m1.data nullptr){std::cout << "无参构…

一、Mat类知识点:
1、Mat无参构造对象
  (1)、Mat();
  (2)、调用无参构造,不为对象成员变量(数据指针data)分配内存。
  (3)、Mat的成员变量和成员函数都是public类型。
  (4)、测试代码:
     

      cv::Mat m1;if (m1.data == nullptr){std::cout << "无参构造: m1.data == nullptr" << std::endl;}输出: 无参构造: m1.data == nullptr


2、Mat有参构造对象并初始化
  (1)、Mat(int rows, int cols, int type, const Scalar & s);
  (2)、调用有参构造,会为对象成员变量(数据指针data)分配内存,并初始化值。
  (3)、参数说明:
      rows: 行数,即高。
      cols: 列数,即宽。
      type: 矩阵类型,如:CV_8UC1、CV_8UC3、CV_32FC3等。
      s: 用于初始化每个像素的值。
  (4)、测试代码: 有参构造对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数,每个像素初始化值BRG = (1, 2, 3))
      

      cv::Mat m2(3, 4, CV_8UC3, cv::Scalar(1, 2, 3));std::cout << m2 << std::endl;输出:[  1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3;1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3;1,   2,   3,   1,   2,   3,   1,   2,   3,   1,   2,   3]


    
3、zeros静态函数创建对象并初始化
  (1)、static UMat zeros(int rows, int cols, int type);
  (2)、返回一个指定大小和类型的零数组对象。
  (3)、参数说明:
      rows: 行数,即高。
      cols: 列数,即宽。
      type: 矩阵类型,如:CV_8UC1、CV_8UC3、CV_32FC3等。
  (4)、测试代码: zeros静态函数创建对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数, 每个像素每个通道值为0)
      

      cv::Mat m3 = cv::Mat::zeros(3, 4, CV_8UC3);std::cout << m3 << std::endl;输出:[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0;0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0;0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0]


         
4、ones静态函数创建对象并初始化
  (1)、static UMat ones(int rows, int cols, int type);
  (2)、返回一个指定大小和类型,且每个像素第一个通道为1,其余通道为0的数组对象。
  (3)、参数说明:
      rows: 行数,即高。  
      cols: 列数,即宽。  
      type: 矩阵类型,如:CV_8UC1、CV_8UC3、CV_32FC3等。
  (4)、测试代码: ones静态函数创建对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数, 每个像素第一通道为1,其余通道为0)
    

    cv::Mat m4 = cv::Mat::ones(3, 4, CV_8UC3);std::cout << m4 << std::endl;输出:[  1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0;1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0;1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0]


         
5、矩阵类型说明:
  (1)、U表示无符号整型(Unsigned),S表示有符号整型(Signed),F表示浮点数(Float),C表示通道数(Channel)。
  (2)、举例说明:
      CV_8UC1  每个像素单通道,每通道8位无符号整数。
      CV_8UC3  每个像素3通道,每通道8位无符号整数。
      CV_8SC1  每个像素单通道,每通道8位有符号整数。
      CV_16UC3 每个像素3通道,每通道16位无符号整数。
      CV_32FC1 每个像素单通道,每通道32位浮点数。
      CV_32FC3 每个像素3通道,每通道32位浮点数。
  (3)、测试代码:
     

      cv::Mat m5 = cv::Mat::zeros(3, 4, CV_8UC1);cv::Mat m6 = cv::Mat::zeros(2, 2, CV_8UC3);cv::Mat m7 = cv::Mat::zeros(3, 3, CV_32FC1);cv::Mat m8 = cv::Mat::zeros(3, 3, CV_32FC3);//获取行数、列数、通道数std::cout << "height = " << m5.rows << ", width = " << m5.cols << ", channels = " << m5.channels() << std::endl;std::cout << "height = " << m6.rows << ", width = " << m6.cols << ", channels = " << m6.channels() << std::endl;std::cout << "height = " << m7.rows << ", width = " << m7.cols << ", channels = " << m7.channels() << std::endl;std::cout << "height = " << m8.rows << ", width = " << m8.cols << ", channels = " << m8.channels() << std::endl;输出: height = 3, width = 4, channels = 1height = 2, width = 2, channels = 3height = 3, width = 3, channels = 1height = 3, width = 3, channels = 3


      
6、操作符=重载Scalar对象
  (1)、Mat & operator = (const Scalar & s);
  (2)、将数组所有或部分元素设置为指定标量值。
  (3)、参数s: 标量值。 一个值对应一个通道,两个值对应两个通道,三个值对应三个通道。
  (4)、测试代码: 将3行4列数组,每个像素第一个通道值赋为127, 第二个通道值赋为111, 第三个通道值赋为80
    

      cv::Mat m9 = cv::Mat::zeros(3, 4, CV_8UC3);m9 = cv::Scalar(127, 111, 80);std::cout << m9 << std::endl;输出:[127, 111,  80, 127, 111,  80, 127, 111,  80, 127, 111,  80;127, 111,  80, 127, 111,  80, 127, 111,  80, 127, 111,  80;127, 111,  80, 127, 111,  80, 127, 111,  80, 127, 111,  80]


     
7、操作符=重载Mat对象
  (1)、Mat & operator = (const Mat & m);
  (2)、将m对象的值赋值给本对象。
  (3)、注意,不是深拷贝,只是简单将m的成员指针赋值给本对象的成员指针变量,所以本对象和m对象共享数据内存。
  (4)、测试代码: 操作符=重载Mat对象(m10分配数据内存,每个像素BGR = (80, 100, 120),m10给m11赋值后,m11每个像素BGR = (111, 112, 113),m10也同时被改)
    

      cv::Mat m10(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m11;m11 = m10;m11 = cv::Scalar(111, 112, 113);std::cout << m10 << std::endl;std::cout << m11 << std::endl;输出:[111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113][111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113]

8、clone()函数赋值
  (1)、Mat clone() const;
  (2)、返回一个新的Mat对象,新Mat对象和原本对象有同样大小的内存分配,有同样的数据。
  (3)、测试代码: clone()测试(m12分配数据内存,每个像素BGR = (80, 100, 120)。m12调用clone(),返回一个新的Mat对象,和m12有同样大小的内存和数据,新对象给m13赋值,m13共享新对象内存,因此m13和m12两块内存,互不影响)
      

      cv::Mat m12(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m13;m13 = m12.clone();m13 = cv::Scalar(111, 112, 113);std::cout << m12 << std::endl;std::cout << m13 << std::endl;输出:[ 80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120;80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120;80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120][111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113]

9、copyTo()函数赋值
  (1)、void copyTo( OutputArray m ) const;
  (2)、将m分配和本对象同样大小的数据内存,并将本对象的数据拷贝到m的内存中。
  (3)、测试代码: copyTo()测试(m14分配数据内存,每个像素BGR = (80, 100, 120)。m14调用copyTo(),将m15分配和m14同样大小的内存,并将m14的数据拷贝到m15的内存中。因此m14和m15两块内存,互不影响)
  

    cv::Mat m14(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m15;m14.copyTo(m15);m15 = cv::Scalar(111, 112, 113);std::cout << m14 << std::endl;std::cout << m15 << std::endl;输出:[ 80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120;80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120;80, 100, 120,  80, 100, 120,  80, 100, 120,  80, 100, 120][111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113;111, 112, 113, 111, 112, 113, 111, 112, 113, 111, 112, 113]


二、示例代码:

#include <iostream>
#include <opencv2/opencv.hpp>int main()
{//无参构造对象cv::Mat m1;if (m1.data == nullptr){std::cout << "无参构造: m1.data == nullptr" << std::endl;}//有参构造对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数,每个像素初始化值BRG = (1, 2, 3))cv::Mat m2(3, 4, CV_8UC3, cv::Scalar(1, 2, 3));std::cout << m2 << std::endl;//zeros静态函数创建对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数, 每个像素每个通道值为0)cv::Mat m3 = cv::Mat::zeros(3, 4, CV_8UC3);std::cout << m3 << std::endl;//ones静态函数创建对象并初始化(3行4列,每个像素3个通道,每个通道8位无符号整数, 每个像素第一通道为1,其余通道为0)cv::Mat m4 = cv::Mat::ones(3, 4, CV_8UC3);std::cout << m4 << std::endl;//U表示无符号整型(Unsigned),S表示有符号整型(Signed),F表示浮点数(Float),C表示通道数(Channel)cv::Mat m5 = cv::Mat::zeros(3, 4, CV_8UC1);cv::Mat m6 = cv::Mat::zeros(2, 2, CV_8UC3);cv::Mat m7 = cv::Mat::zeros(3, 3, CV_32FC1);cv::Mat m8 = cv::Mat::zeros(3, 3, CV_32FC3);//获取行数、列数、通道数std::cout << "height = " << m5.rows << ", width = " << m5.cols << ", channels = " << m5.channels() << std::endl;std::cout << "height = " << m6.rows << ", width = " << m6.cols << ", channels = " << m6.channels() << std::endl;std::cout << "height = " << m7.rows << ", width = " << m7.cols << ", channels = " << m7.channels() << std::endl;std::cout << "height = " << m8.rows << ", width = " << m8.cols << ", channels = " << m8.channels() << std::endl;//操作符=重载Scalar对象(将3行4列数组,每个像素第一个通道值赋为127, 第二个通道值赋为111, 第三个通道值赋为80)cv::Mat m9 = cv::Mat::zeros(3, 4, CV_8UC3);m9 = cv::Scalar(127, 111, 80);std::cout << m9 << std::endl;//操作符=重载Mat对象(m10分配数据内存,每个像素BGR = (80, 100, 120),m10给m11赋值后,m11每个像素BGR = (111, 112, 113),m10也同时被改)cv::Mat m10(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m11;m11 = m10;m11 = cv::Scalar(111, 112, 113);std::cout << m10 << std::endl;std::cout << m11 << std::endl;//clone()测试(m12分配数据内存,每个像素BGR = (80, 100, 120)。m12调用clone(),返回一个新的Mat对象,和m12有同样大小的内存和数据。//新对象给m13赋值,m13共享新对象内存,因此m13和m12两块内存,互不影响)cv::Mat m12(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m13;m13 = m12.clone();m13 = cv::Scalar(111, 112, 113);std::cout << m12 << std::endl;std::cout << m13 << std::endl;//copyTo()测试(m14分配数据内存,每个像素BGR = (80, 100, 120)。m14调用copyTo(),将m15分配和m14同样大小的内存,并将m14的数据拷贝到m15的内存中。因此m14和m15两块内存,互不影响)cv::Mat m14(3, 4, CV_8UC3, cv::Scalar(80, 100, 120));cv::Mat m15;m14.copyTo(m15);m15 = cv::Scalar(111, 112, 113);std::cout << m14 << std::endl;std::cout << m15 << std::endl;system("pause");return 0;
}


      
       


 

http://www.dtcms.com/wzjs/356705.html

相关文章:

  • 怎么做网站代码东莞网站优化
  • 直播的网站开发谷歌seo 优化
  • pc网站手机网站app销售怎么找客户源
  • 网站开发的背景seo排名第一的企业
  • 无代码做网站武汉百度推广电话
  • 柳州做网站的企业企业网站营销的优缺点及案例
  • 做外贸用什么视频网站好营销策划方案ppt模板
  • 额敏网站建设百度指数下载手机版
  • 网站优化连云港哪家强?厦门人才网官网
  • 2345网址导航怎么彻底删掉win10杭州网络推广网络优化
  • 大理北京网站建设免费发布网站seo外链
  • 自建网站备案通过后怎么做年度关键词有哪些
  • b2c网站架构站长工具ping检测
  • 世界著名免费邮箱网站360营销推广
  • 苏州技术馆网站建设谷歌广告优化师
  • 沈阳网站建设搜q479185700大学生网络营销策划书
  • wordpress编辑器模板东莞关键词排名快速优化
  • 如何进行一个网站建设百度有免费推广广告
  • 做仿网站公司网络促销方案
  • 衡阳网站优化方案老铁外链
  • 长宁专业做网站什么是百度竞价排名服务
  • 网站开发后台指什么网页设计与制作用什么软件
  • 模版网站做支付功能百度seo关键词优化推荐
  • 高水平的网站建设原创文章代写
  • app设计毕业论文aso优化是什么
  • 苏州制作网站的公司南宁seo团队哪家好
  • 本地论坛福建seo推广方案
  • 当地自己的淘宝网站怎么做智能建站系统
  • phpweb网站模板凡科小程序
  • 网站开发与建设百度账号管家