您当前的位置: 首页 >  opencv

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

opencv图像-拼接线的处理

qianbo_insist 发布时间:2021-09-04 16:12:55 ,浏览量:0

opencv 基础函数

opencv 拼接两副图像是很好处理的,如左右拼接, 使用colRange,上下拼接,使用rowRange,这两个函数在opencv里封装的比较好,注意是左闭右边开的函数。

1 rowRange colRange
inline 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             
关注
打赏
1663161521
查看更多评论
0.0389s