opencv 基础函数
opencv 拼接两副图像是很好处理的,如左右拼接, 使用colRange,上下拼接,使用rowRange,这两个函数在opencv里封装的比较好,注意是左闭右边开的函数。
1 rowRange colRangeinline Mat Mat::rowRange(int startrow, int endrow) const
{
return Mat(*this, Range(startrow, endrow), Range::all());
}
inline Mat Mat::colRange(int startcol, int endcol) const
{
return Mat(*this, Range::all(), Range(startcol, endcol));
}
statrol 和endcol 分别是开始和结束的列,startrow和endrow是开始和结束的列,注意是左闭右边开,也就是包含开始但是不包含结束。
2、创建和合并创建一个图像,h_out,w_out 是新图像的大小
Mat FeatureMat = Mat::zeros(
h_out,
w_out,
s1.type());
//映射图像
Mat tmpMat1 = FeatureMat.rowRange(0, h1);
Mat tmpMat2 = FeatureMat.rowRange(h1, h_out);
//需要拷贝的图1
tmp1.copyTo(tmpMat1);
//需要拷贝的图2
tmp2.copyTo(tmpMat2);
3、边缘融合
两幅图像合并的地方是有清晰的界限的,如果取第一幅图像的全部,图像底部还会有黑边,因此,取图的时候注意去除最后一行或者最后一列。 上面这幅图的接线有一道像刀锋一样,下图则使用融合以后,接线处没有刀锋感了
算法如下:
int y = h1 - 1; //拼接的最后一行
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?