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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值