opencv 常用操作 c++

图像水平垂直方向拼接:

cv::vconcat(B,C,A); // 等同于A=[B ;C]

cv::hconcat(B,C,A); // 等同于A=[B C]

初始化Mat:

cv::Mat edgeDest(cv::Size(10,10), CV_8UC1, cv::Scalar(0));

double a[3][3] = { 0.1,0,0.2

0, 0.3, 0.4,

0,0,1};

cv::Mat K(3,3,CV_64F,a);

 

读yml文件:

cameraParameter0.yml文件内容:

%YAML:1.0

---

K: !!opencv-matrix

rows: 3

cols: 3

dt: d

data: [ 9.6205183555037502e+02, 0., 664., 0., 9.6205183555037502e+02,

352., 0., 0., 1. ]

baseline: 1.2161505967378616e+02

std ::string fileName= cv::format(ROOT_DIR"/parameter/cameraParameter%d.yml",0);

cv::FileStorage fs(fileName, cv::FileStorage::READ);

fs["K"] >> k;

fs["baseline"] >> baseline;

fs.release();

 

写yml:

cv::FileStorage fs(fileName, cv::FileStorage::WRITE);

fs<<"camera_intrinsics"<<camera_intrinsics[id];

fs<< "R" << rotation;

fs.release();

 

显示文字:

std::ostringstream vector_to_marker;

vector_to_marker.str(std::string());

vector_to_marker << std::setprecision(4)

<< "x: " << std::setw(8) << Position.x << " mm";

cv::putText(colorImg, vector_to_marker.str(),

cvPoint(10, 120), cv::FONT_HERSHEY_SIMPLEX, 1.5,

cv::Scalar(0,255,255), 2, CV_AA);

 

vector_to_marker.str(std::string());

vector_to_marker << std::setprecision(4)

<< "y: " << std::setw(8) << Position.y << " mm";

cv::putText(colorImg, vector_to_marker.str(),

cvPoint(10, 180), cv::FONT_HERSHEY_SIMPLEX, 1.5,

cv::Scalar(0,255,255), 2, CV_AA);

 

vector_to_marker.str(std::string());

vector_to_marker << std::setprecision(4)

<< "z: " << std::setw(8) << Position.z << " mm";

cv::putText(colorImg, vector_to_marker.str(),

cvPoint(10, 260), cv::FONT_HERSHEY_SIMPLEX, 1.5,

cv::Scalar(0,255,255), 2, CV_AA);

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdfs fsck命令查看HDFS文件对应的文件块信息(Block)和位置信息(Locations)

关键字&#xff1a;hdfs fsck、block、locations 在HDFS中&#xff0c;提供了fsck命令&#xff0c;用于检查HDFS上文件和目录的健康状态、获取文件的block信息和位置信息等。 fsck命令必须由HDFS超级用户来执行&#xff0c;普通用户无权限。 [hadoopdev ~]$ hdfs fsck Usage…

线程让步

package com.ajax; //线程让步&#xff1a;通过yield方法来实现&#xff0c;该方法和sleep方法有点相似&#xff0c;都可以让当前正在运行的线程暂停&#xff0c;区别在于yield方法不会阻塞该线程&#xff0c;他只是将线程转换为就绪状态&#xff0c;让系统的调度器 //重新调度…

tcp连接超时处理

设置connect超时很简单&#xff0c;CSDN上也有人提到过使用select&#xff0c;但却没有一个令人满意与完整的答案。偶所讲的也正是select函数&#xff0c;此函数集成在winsock1.1中&#xff0c;简单点讲&#xff0c;"作用使那些想避免在套接字调用过程中被锁定的应用程序&…

Hbase Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory

新启动测试环境Hbase报错&#xff0c;报错日志如下 # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 31715688448 bytes for committing reserved memory. # An error report file with mo…

Tcp设置发送和接收超时

linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况&#xff1a;如对方关闭时&#xff0c;本地可能sendto不出去数据&#xff0c;然后recvfrom就会被阻塞&#xff0c;这时就需要设置 这两个参数的值提高程序质量。 linux: …

线程插队

package com.ajax; //线程插队 public class Example06 {public static void main(String[] args)throws Exception{Thread tnew Thread(new EmergencyThread(),"线程一");t.start();for(int i0;i<6;i){System.out.println(Thread.currentThread().getName()"…

txt记录位置 c++,python显示位置

///c 写/ std::ofstream lane_postion_log(ROOT_DIR"/build/lane_position_log.txt");//创建文件 lane_postion_log <<p.x<<","<<p.y<<","<<p.z<<endl;//写位置 lane_postion_log.close(); //python显示…

CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置

日常工作中会涉及到各种资源分配等问题&#xff0c;跨部门&#xff0c;跨业务等等&#xff0c;这里介绍基于CDH版本的Yarn 公平调度&#xff08;实际使用DRF调度&#xff09; 不同时间配置不同资源参考&#xff08;计划模式&#xff09;&#xff1a;https://datamining.blog.cs…

为什么TCP是三次握手

TCP 三次握手 首先简单介绍一下TCP三次握手 在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;采用三次握手建立一个连接。 第一次握手&#xff1a;建立连接时&#xff0c;客户端发送syn包(synj)到服务器&#xff0c;并进入SYN_SEND状态&#xff0c;等待服务…

线程安全

package com.ajax; //线程安全 public class Example07 {public static void main(String[] args){SaleThread saleThreadnew SaleThread();new Thread(saleThread,"线程一").start();new Thread(saleThread,"线程二").start();new Thread(saleThread,&quo…

CDH 配置YARN动态资源池的计划模式,根据时间划分资源,不同时间不同队列使用不同资源

公平调度配置可参考&#xff1a;http://datamining.blog.csdn.net/article/details/94554469 目录 计划模式设置 队列资源抢占分配 计划模式设置 1.创建计划规则 2.设置白天配置&#xff0c;可以根据业务选择具体配置计划&#xff0c;调整资源&#xff0c;选择每天&#xff…

java集合类总结

Collection&#xff1a;单列集合类的跟接口&#xff0c;用于存储一系列符合某种规则的元素&#xff0c;它有两个重要的子接口&#xff0c;分别时List和Set还有Queue。其中List的特点时元素有序&#xff0c;元素可重复&#xff0c;Set的特点时元素无序且不可重复&#xff0c;Que…

c++ 获取数据类型最大值或最小值

范例&#xff1a; double min_dist numeric_limits<double>::max(); double max_dist numeric_limits<double>::min();

TCP为什么是四次挥手

TCP 3次握手 客户端向服务器发送一个SYN&#xff08;包含了SYN&#xff0c;SEQ&#xff09;。 当服务器接收到客户端发过来的SYN时&#xff0c;会向客户端发送一个SYNACK的数据包&#xff0c;其实ACK的ack等于上一次发送SYN数据包的&#xff08;SYNSEQ&#xff09;。 当客户…

Kudu 基本操作,详细操作讲解

kudu与Apache Impala紧密集成&#xff0c;允许您使用Impala使用Impala的SQL语法从Kudu平板中插入、查询、更新和删除数据&#xff0c;以替代使用Kudu API来构建自定义的Kudu应用程序。此外&#xff0c;您还可以使用JDBC或ODBC将使用任何语言、框架或商业智能工具编写的现有或新…

c++ 随机分布

uniform_distribution 模板定义了可以产生随机浮点值的分布对象类型&#xff0c;默认是 double 类型。默认构造函数创建的是标准正态分布&#xff0c;因此期望是 0&#xff0c;方差是 1.0: normal_distribution<double> disX(0, 1.0); uniform_real_distribution 类模板…

TCP的三次握手和四次挥手详解

为什么需要“三次握手” 在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端&#xff0c;因而产生错误”。在另一部经典的《计算机网络》一书中讲“三次握手”的目的是为了解决“网络中存在延迟的重复分组”的问题。…

NameNode所需配置,NameNode内存配置计算,NameNode与block关系

NameNode 所需大小&#xff0c;与Block大小&#xff0c;HDFS副本数均有关&#xff0c;计算方式如下&#xff1a; 例&#xff1a;bolck为256M,副本为3个&#xff0c;10台机器&#xff0c;每台4TB数据&#xff0c; Namenode需要的内存为&#xff1a; 10 * 4 * 1024 * 1024 MB …

Debug和Realease版本的区别

vs中的程序有debug和release两个版本&#xff0c;Debug通常称为调试版本&#xff0c;通过一系列编译选项的配合&#xff0c;编译的结果通常包含调试信息&#xff0c;而且不做任何优化&#xff0c;以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本&#xff…

zabbix server is not running the information displayed may not be current

页面报错如下 查看日志提示 30037:20190710:193016.878 cannot start alert manager service: Cannot bind socket to "/var/run/zabbix/zabbix_server_alerter.sock": [13] Permission denied.30039:20190710:193016.879 server #30 started [preprocessing manage…