利用opencv的stitcher类进行图像拼接
2017-09-10 17:38
495 查看
opencv提供了拼接类,stitcher,用户只需要提供拼接的子图像,该函数就能给出拼接结果。
需要注意的问题有三个:
①输入的图片应该是三通道的,单通道是不可以的;
②输入的单个图像不能太小,如果小的话可以放大,另外好像输入的图片数量可以弥补图像大小不足的问题,就是说如果输入图片比较小的话,可以多输入一些。
③如果图片重叠太多的话,感觉拼接的就没那么好。
我测试的拼接结果咯,前面三张是输入的图像,最后一张是拼接结果图像,感觉最后一张好像没有拼进去似的。
int main() { std::vector<Mat> imageVec; char path1[100] = "C:\\project\\"; char path[200]; for (int i = 1; i <= 3; i++) { sprintf(path, "%s%d.jpg", path1, i); Mat image = cv::imread(path); imageVec.push_back(image.clone()); } //不使用gpu bool useGpu = false; Mat result; cv::Stitcher stitcher = cv::Stitcher::createDefault(useGpu); cv::Stitcher::Status status = stitcher.stitch(imageVec, result); if (status != cv::Stitcher::OK) { cout << "stitching error!!!" << endl << "error code: " << status << endl; return -1; } else { cv::imwrite("C:\\project\\result.jpg", result); } return 0; }
需要注意的问题有三个:
①输入的图片应该是三通道的,单通道是不可以的;
②输入的单个图像不能太小,如果小的话可以放大,另外好像输入的图片数量可以弥补图像大小不足的问题,就是说如果输入图片比较小的话,可以多输入一些。
③如果图片重叠太多的话,感觉拼接的就没那么好。
我测试的拼接结果咯,前面三张是输入的图像,最后一张是拼接结果图像,感觉最后一张好像没有拼进去似的。
相关文章推荐
- ROS中利用opencv3完成四个视频流拼接成一副图像显示,并添加track条进行参数调节
- python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并
- 利用opencv3读取caffe mode,对图像进行分类
- 在opencv3中利用SVM进行图像目标检测和分类
- 利用opencv3读取tensorflow model,对图像进行分类
- 利用OpenCV进行图像匹配
- Android平台上利用opencv进行图像的缩放
- 【OpenCV学习笔记 024】Stitcher类实现全景图像拼接
- Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配
- 用opencv的stitcher类实现图像拼接
- 图像的属性,利用OpenCV进行图像的基本操作
- Android平台上利用opencv进行图像的边沿检测
- 利用Opencv提供的imencode和imdecode进行图像视频传输(发送端支持Linux和Windows双系统)
- Opencv 使用Stitcher类图像拼接生成全景图像
- 利用OpenCV实现图像拼接的代码!
- Android平台上利用opencv进行图像的边沿检测
- 利用opencv从本地获取图像,并进行图像缩放,彩色图转灰度图
- 在opencv3中利用SVM进行图像目标检测和分类
- 利用OpenCV进行图像配准
- 【OpenCV-图像处理】用sift特征点算法和ransac算法进行多幅图像的拼接