赞
踩
首先:这个方法不是用特征来进行拼接的。
1、给定两张图, 一左一右
Left:
Right:
就想把两张图组合在一起,但是,中间有重叠的像素(参数);
我不想看到黑边,如果不一致,就直接按照短的裁掉。
#include <iostream> #include <opencv.hpp> #include <opencv2/core.hpp> using namespace cv; int main() { //横着方向,重叠的像素个数。 int x_overlap = 95; Mat img1 = imread("left.png"); Mat img2 = imread("right.png"); Mat result; if (img1.rows >= img2.rows) { Mat roi = img1(Rect(0, 0, img1.cols, img2.rows)); Mat roi2 = roi(Rect(0, 0, roi.cols - x_overlap, roi.rows)); hconcat(roi2, img2, result); } else { Mat roi = img2(Rect(0, 0, img2.cols, img1.rows)); Mat roi2 = roi(Rect(0, 0, roi.cols - x_overlap, roi.rows)); hconcat(img1,roi2, result); } namedWindow("result", 0); imshow("result", result); waitKey(); }
拼接完成后:
Result:
原图:
我就想要这么个效果!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。