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

门户网站建设定制无锡百度

门户网站建设定制,无锡百度,做竞品分析的网站,工商系统企业信用信息查询#x1f389;#x1f389;#x1f389; 欢迎各位来到小白 p i a o 的学习空间#xff01; \color{red}{欢迎各位来到小白piao的学习空间#xff01;} 欢迎各位来到小白piao的学习空间#xff01;#x1f389;#x1f389;#x1f389; #x1f496;#x1f496; 欢迎各位来到小白 p i a o 的学习空间 \color{red}{欢迎各位来到小白piao的学习空间} 欢迎各位来到小白piao的学习空间 持续更新期待关注 \color{blue}{持续更新期待关注} 持续更新期待关注 我的主页 \color{purple}{我的主页} 我的主页我的主页 Python基础、中级、高级C数据结构和算法Python数据结构和算法OpenCV相关内容等重点内容 我的资源 \color{purple}{我的资源} 我的资源我的资源 IT技术各档次模板各类项目企业、毕设数据库安装包Mysql8.0技能资料电子书、软考等 目录 前言 \color{purple}{前言} 前言 一、访问的方法 \color{blue}{一、访问的方法} 一、访问的方法 1.1 利用成员函数 a t ( ) \color{green}{1.1 利用成员函数at()} 1.1利用成员函数at()1.1.1 at函数的功能1.1.2 多种at()函数原型的介绍及案例a) 类型一_Tp cv::Mat::at ( int i 0)b) 类型二_Tp cv::Mat::at( int row,int col )c)类型三 _Tp cv::Mat::at ( Point pt) 1.2 利用成员函数 p t r ( ) \color{green}{1.2利用成员函数ptr()} 1.2利用成员函数ptr()1.2.1 ptr()函数的功能1.2.2 多种ptr()函数原型介绍及案例a) 类型一uchar* cv::Mat::ptr ( int i0 0 )b) 类型二uchar* cv::Mat::ptr ( int row,int col ) 1.3 利用成员函数 i s C o n t i n u o u s 和 p t r \color{green}{1.3利用成员函数isContinuous和ptr} 1.3利用成员函数isContinuous和ptr1.3.1 isContinuous()介绍1.3.2 我们来看看其和ptr()组合如何完成实际需求访问Mat中的值 四、总结 \color{red}{四、总结} 四、总结 ----------------------------------以下为正式内容---------------------------------------- 前言 \color{purple}{前言} 前言 书接上回我们继续来讨论有关Mat的基本知识这次我们继续深化了解Mat对象以便后期更好的进行开发工作。这一章节主要是一些使用层面的知识相比上章节我相信读者更愿意看本章内容因为可以快速得到自己想要的结果但是还是那句话最好掌握原理之后再去使用更为科学。 前文链接【C的OpenCV】第十三课-OpenCV基础强化一绝对有用Mat相关的一系列知识基础-进阶 一、访问的方法 \color{blue}{一、访问的方法} 一、访问的方法 1.1 利用成员函数 a t ( ) \color{green}{1.1 利用成员函数at()} 1.1利用成员函数at() 先来通过帮助文档了解一下at函数的基本信息点击这里了解详情总共有12种形式这里为大家略微截图大家可以自行阅读我摘抄其中重点其余感兴趣的可以做进一步了解 1.1.1 at函数的功能 这么多英文懵了吧懵了就对了下边我给大家讲几句         大概意思就是说这个方法会返回一个你所指定的数组元素的引用而关于下标索引范围的检查动作仅仅在测试模式下生效生产模式下不生效的目的是为了提高程序的执行效率。注意这里得到是某个元素的引用哦         再直白一点就是说它可以得到矩阵的某行某列的元素。 1.1.2 多种at()函数原型的介绍及案例 a) 类型一_Tp cv::Mat::at ( int i 0) templatetypename _Tp _Tp cv::Mat::at ( int i 0) 原文That is, if, for example, A is a 1 x N floating-point matrix and B is an M x 1 integer matrix, you can simply write A.atfloat(k4) and B.atint(2i1) instead of A.atfloat(0,k4) and B.atint(2i1,0), respectively. 大概意思这个参数i可以指代任意一个单行或者单列的二维矩阵例如一个1行N列的浮点矩阵A和一个M行1列的整型矩阵B分别找到其中某个元素的方法就可以简化为A.atfloat(k4) 和 B.atint(2*i1)。         注意这里函数原型中的返回值部分是_TP哦大家知道这是什么意思吧是引用         这里来给大家一个使用上的要求 If matrix is of type CV_8U then use Mat.atuchar(y,x).如果矩阵是CV_8U的类型那么使用模版时类型也要是对应的数据类型uchar即Mat.atuchar(y,x)这里和大家解释一个细节8U的意思就是8bit的无符号整数。If matrix is of type CV_8S then use Mat.atschar(y,x).同上的翻译一个意思即类型是CV_8S,则使用类型为schar即Mat.atschar(y,x)下边不再赘述。If matrix is of type CV_16U then use Mat.atushort(y,x).If matrix is of type CV_16S then use Mat.atshort(y,x).If matrix is of type CV_32S then use Mat.atint(y,x).If matrix is of type CV_32F then use Mat.atfloat(y,x).If matrix is of type CV_64F then use Mat.atdouble(y,x). b) 类型二_Tp cv::Mat::at( int row,int col ) templatetypename _Tp _Tp cv::Mat::at( int row,int col ) 那这种就是最常见的那种咯输入行列找到对应的值咯。给大家个例子 #include iostream #include opencv2/core.hpp #include opencv2/highgui.hppusing namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6)cout m.atint(1,1) endl; // 这里的结果是4 为什么知道吗cout m endl; // 注意显示的是3行2列//首先这里创建的是一个3行2列的矩阵这个不难懂4是出现在第二行第二列的元素/*[1,23,45,6]*/// 那这个m.atint(1,1)中的两个1其实就得知道at的参数含义了//注意at()方法中的row和col都是从0开始的0即代表第一行或者第一列明白了吧//注意at()中是先行后列return 0; }c)类型三 _Tp cv::Mat::at ( Point pt) templatetypename _Tp _Tp cv::Mat::at ( Point pt) 其实这种也很常见以及其返回const类型的方法都是一个原理这里需要传入一个点对象作为参数说白了就是按照点的位置在对应矩阵这种查找对应的元素即可了。举个例 #includeiostream #includeopencv2/core/utility.hpp using namespace std; using namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6);coutmendl;/*[1, 2;3, 4;5, 6]*/cout m.atint(Point(1,0)) endl; // 结果是2哦看看上一节内容就知道Point(c,r),是先列后行且这两个值都是列和行的索引基于0return 0; }虽然方法很多其他的方法都可以触类旁通只要学好C的基础语法这都不是难事哦后期我也将会为大家写写C和Python的基础教程大家都可以持续关注起来哦 1.2 利用成员函数 p t r ( ) \color{green}{1.2利用成员函数ptr()} 1.2利用成员函数ptr() 先来通过帮助文档了解一下at函数的基本信息点击这里了解详情,这个方法更多有20种是不是看文档很累看我的吧帮你总结好了学习的方法轻松上手熟练掌握 1.2.1 ptr()函数的功能 首先呢它会返回一个指向矩阵中某元素或者行的指针注意哦返回的是指针并且哦这个指针是uchar类型的哦 1.2.2 多种ptr()函数原型介绍及案例 a) 类型一uchar* cv::Mat::ptr ( int i0 0 ) // 这个是模版方法templatetypename _Tp _Tp* cv::Mat::ptr ( int i0 0 ) // i0 :基于0的行索引说白了从零开始//个人而言更乐意直接使用模版方法因为它可以返回模版类型的指针行或者元素而不是单纯的uchar*!!//以下这个是基础款 uchar* cv::Mat::ptr (int i0 0) 注意这个方法返回的就是某一行的行指针         举个浅显易懂的例子吧 #includeiostream #includeopencv2/core/utility.hpp using namespace std; using namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6);cout m endl; // 注意显示的是3行2列/*[1, 2;3, 4;5, 6]*/cout m.size() endl; // [2 x 3] 注意size()的表示方式是2列3行for(int r0; r m.rows; r){//得到每行的行首指针r就是当前行的索引const int* rptr m.ptrint(r);//打印第r行的元素的所有值for(int c0; cm.cols; c){ //c是列的索引也是基于0的索引几乎所有数字型索引都是从0开始coutrptr[c],;}coutendl; //换行}return 0; }结果如下 b) 类型二uchar* cv::Mat::ptr ( int row,int col ) // 这个是模板templatetypename _Tp _Tp* cv::Mat::ptr ( int row,int col ) //以下这个是基础款 uchar* cv::Mat::ptr ( int row,int col ) 这种方式不就更直接了吗直接通过行列访问到对应元素上注意此时这个返回值就是直接返回元素的指针了我们试试看 #includeiostream #includeopencv2/core/utility.hpp using namespace std; using namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6);cout m endl; // 注意显示的是3行2列/*[1, 2;3, 4;5, 6]*/cout m.size() endl; // [2 x 3] 注意size()的表示方式是2列3行cout *m.ptrint(1,1) endl; //注意这里一个细节哦仔细看哦结果是4//这里m.ptrint(1,1)得到的是索引为1,1的元素的指针//而在其之前加上*号就是获取该指针地址对应的元素这个过程通常被称为“解引用”操作return 0; }看着方法众多很多方法几乎用不到但是得有这个功能新手先掌握这些剩下的内容等用到了再查就行掌握了规律剩下的无师自通了哈 1.3 利用成员函数 i s C o n t i n u o u s 和 p t r \color{green}{1.3利用成员函数isContinuous和ptr} 1.3利用成员函数isContinuous和ptr 1.3.1 isContinuous()介绍 原文链接得有点击这里了解详情毕竟是教大家学东西同时培养自学能力这么良心的作者已经很少了         函数功能         **如果矩阵元素连续存储且每行末尾没有间隙则该方法返回true。否则它将返回false。**显然1x1或1xN矩阵总是连续的。使用Mat:create创建的矩阵总是连续的。但是如果 使用Mat:col、Mat:diag等提取矩阵的一部分或者为外部分配的数据构造矩阵头则此类矩阵可能不再具有此属性。 想想看图像边界连续性检测不就是这个原理吗 这里为了给大家更好的理解我们加一节小灶Mat对象至少一行中的所有元素在内存汇总的排布是连续的而行与行之间不一定连续除非你用create创建Mat如果不连续其行与行的间隔也是一样的 函数的原型 bool cv::Mat::isContinuous ( ) const// 返回值是一个布尔值如果是连续的就是true否则就是false呗1.3.2 我们来看看其和ptr()组合如何完成实际需求访问Mat中的值 这里就不废话了都是讲过的内容直接上代码 #includeiostream #includeopencv2/core/utility.hpp using namespace std; using namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6);cout m endl; // 注意显示的是3行2列/*[1, 2;3, 4;5, 6]*/if(m.isContinuous()){int* ptr m.ptrint(0); // 得到第一行行首指针for(int n 0; n m.rows*m.cols; n){//解释一下n m.rows*m.cols这个边界条件是一种经验//意思m.rows*m.cols即行数*列数//其次在内存层面上如果矩阵连续m.isContinuous()的结果为true//就是说内存上这些值都是挨着存储的所以索引也是连续的//故这是一个以为数组则最大索引就是m.rows*m.cols-1//怎么样有意思吧认真学习起来。coutptr[n],;}}return 0; }注意仔细看上述代码如下的结果 \color{red}{注意仔细看上述代码如下的结果} 注意仔细看上述代码如下的结果         说明上述代码不连续哦当然你也可以尝试一下加一个else结构去打印一下“不连续”证明这样子创建的矩阵每行之间是有固定间隙的哦仔细看下下边的内容 那我们来换一种方式 #includeiostream #includeopencv2/core/utility.hpp using namespace std; using namespace cv;int main() {Mat m (Mat_int(3,2) 1,2,3,4,5,6);Mat m_c;m_c.create(m.size(),m.type());//注意上文提到过create创建的是连续存储的矩阵cout m_c endl; // 注意显示的是3行2列/*[1, 2;3, 4;5, 6]*/if(m.isContinuous()){int* ptr m_c.ptrint(0); // 得到第一行行首指针for(int n 0; n m_c.rows*m_c.cols; n){coutptr[n],;}coutendl;}return 0; }这下结果明朗了顺道学习了新技能 四、总结 \color{red}{四、总结} 四、总结 内容虽然不多分成两章更新下章还在持续更新但都是精华如果你觉得内容难懂不妨从最基础的内容学起来请看我的首页哦我的主页         顺道呢发现一个不错的资源点我进入 其中包含了opencv入门的保姆级教程环境的安装—实际的项目【人脸识别教程】以及配套了一本中文版OpenCV书籍 持续更新期待关注 \color{blue}{持续更新期待关注} 持续更新期待关注
文章转载自:
http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn
http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn
http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn
http://www.morning.tjjkn.cn.gov.cn.tjjkn.cn
http://www.morning.lxbml.cn.gov.cn.lxbml.cn
http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn
http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn
http://www.morning.jzccn.cn.gov.cn.jzccn.cn
http://www.morning.mxmtt.cn.gov.cn.mxmtt.cn
http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn
http://www.morning.owenzhi.com.gov.cn.owenzhi.com
http://www.morning.pkmw.cn.gov.cn.pkmw.cn
http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn
http://www.morning.kpzbf.cn.gov.cn.kpzbf.cn
http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn
http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.gnwse.com.gov.cn.gnwse.com
http://www.morning.mdlqf.cn.gov.cn.mdlqf.cn
http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn
http://www.morning.gkxyy.cn.gov.cn.gkxyy.cn
http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn
http://www.morning.rxydr.cn.gov.cn.rxydr.cn
http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn
http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn
http://www.morning.qcslh.cn.gov.cn.qcslh.cn
http://www.morning.smkxm.cn.gov.cn.smkxm.cn
http://www.morning.mqgqf.cn.gov.cn.mqgqf.cn
http://www.morning.xdjsx.cn.gov.cn.xdjsx.cn
http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn
http://www.morning.hpmzs.cn.gov.cn.hpmzs.cn
http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn
http://www.morning.hncrc.cn.gov.cn.hncrc.cn
http://www.morning.lyzwdt.com.gov.cn.lyzwdt.com
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn
http://www.morning.nuobeiergw.cn.gov.cn.nuobeiergw.cn
http://www.morning.wknbc.cn.gov.cn.wknbc.cn
http://www.morning.qckwj.cn.gov.cn.qckwj.cn
http://www.morning.xqmd.cn.gov.cn.xqmd.cn
http://www.morning.dysgr.cn.gov.cn.dysgr.cn
http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn
http://www.morning.wlstn.cn.gov.cn.wlstn.cn
http://www.morning.wprxm.cn.gov.cn.wprxm.cn
http://www.morning.lhztj.cn.gov.cn.lhztj.cn
http://www.morning.prhqn.cn.gov.cn.prhqn.cn
http://www.morning.npxcc.cn.gov.cn.npxcc.cn
http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn
http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn
http://www.morning.lslin.com.gov.cn.lslin.com
http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn
http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn
http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn
http://www.morning.xywfz.cn.gov.cn.xywfz.cn
http://www.morning.zbpqq.cn.gov.cn.zbpqq.cn
http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn
http://www.morning.zqfz.cn.gov.cn.zqfz.cn
http://www.morning.dwmmf.cn.gov.cn.dwmmf.cn
http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn
http://www.morning.kabaifu.com.gov.cn.kabaifu.com
http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn
http://www.morning.npfkw.cn.gov.cn.npfkw.cn
http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn
http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn
http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn
http://www.morning.rkjb.cn.gov.cn.rkjb.cn
http://www.morning.qxjck.cn.gov.cn.qxjck.cn
http://www.morning.hpxxq.cn.gov.cn.hpxxq.cn
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.kcyxs.cn.gov.cn.kcyxs.cn
http://www.morning.klcdt.cn.gov.cn.klcdt.cn
http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn
http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn
http://www.morning.rqgq.cn.gov.cn.rqgq.cn
http://www.morning.mksny.cn.gov.cn.mksny.cn
http://www.morning.rpth.cn.gov.cn.rpth.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.dfygx.cn.gov.cn.dfygx.cn
http://www.tj-hxxt.cn/news/282175.html

相关文章:

  • 淘宝客网站建设方案书网站建设四川冠辰
  • 英文企业网站建设用虚拟机做网站服务器吗
  • 北京网站开发网络公司沈阳小程序开发公司哪家好
  • 网站备案现场核验厦门建设与管理局网站
  • 公司企业网站程序下载制作网站用什么软件
  • 搭建一个网站需要什么十大免费实用网站
  • 济南营销型网站建设合肥装修公司哪家口碑最好
  • 网站开发基本流程ppt重庆大渝网首页
  • 宁波网站推广宣传wordpress 利用页面搞
  • 住房和城乡建设部网站首页定制网站和模板建站哪个更好
  • 培训视频网站东莞腾宇科技网站建设
  • c2c电子商务网站用到的技术企业网站系统功能分析与设计
  • 自助购物网站怎么做企业网站主题
  • 保定市建设局质监站网站上海中高风险地区有哪些
  • 如何用asp做视频网站制作网站的发展前景
  • 网站的大量图片存储格式医药公司网站模板
  • 做彩妆发哪个网站浏览量高网页设计制作的软件有哪些
  • 网上商城网站开发报告建设部国家标准网站
  • 网站建设分金手指排名四崇州市网站建设
  • 湘潭响应式网站建设 磐石网络网站主体负责人和网站负责人
  • 美食网站建设策划报告搭建网站用什么软件
  • 建设公司起名哪个网站好金融网站开发的意义 论文
  • 中国欧洲陆运专线谷歌seo外包公司哪家好
  • 北京免备案网站建设河北省永清县建设局网站
  • 服装图案素材网站建设网站具体步骤
  • 西安苗木行业网站建设价格廊坊网站建设推广服务
  • 深南花园裙楼+网站建设建立html网站
  • 百度网站优化公司网站期刊怎么做
  • 医院网站建设情况安全之要
  • 怎么可以黑网站域名58首码项目网