Opencv 基础学习三 (OpenCV实现图像合并主要有两种方法)
2017-12-20 11:10
585 查看
利用openCV将两个图片合并到一起。
方法一:使用push_back方法将列数相同的图像加到最后一行。这个比较简单
方法二
将一个Log放入原图中
方法一:使用push_back方法将列数相同的图像加到最后一行。这个比较简单
+ (UIImage *)PushPicturesimage1:(UIImage *)img1 image2:(UIImage *)img2 { Mat Matimage1,Matimage2,image; UIImageToMat(img1,Matimage1); UIImageToMat(img2,Matimage2); if (Matimage1.data == nil){ printf("Matimage1 no data"); return nil; } if (Matimage2.data == nil){ printf("Matimage2 no data"); return nil; } //【2】定义一个Mat类型并给其设定ROI区域 Mat imageROI; // 合并图像,没有重叠 imageROI.push_back(Matimage1); imageROI.push_back(Matimage2); return MatToUIImage(imageROI); }
方法二
将一个Log放入原图中
+ (UIImage *)MergePicturesimage1:(UIImage *)img1 image2:(UIImage *)img2 { Mat Matimage1,Matimage2,mask; UIImageToMat(img1,Matimage1); // 获取原图 UIImageToMat(img2,Matimage2); // 获取印章 if (Matimage1.data == nil){ printf("Matimage1 no data"); return nil; } if (Matimage2.data == nil){ printf("Matimage2 no data"); return nil; } NSLog(@"%d %d",Matimage1.cols,Matimage1.rows); NSLog(@"%d %d",Matimage2.cols,Matimage2.rows); Mat imageROI = Matimage1(cv::Rect(100,100,Matimage2.cols,Matimage2.rows)); // 获取要叠加的位置和大小 大小必须和印章图大小一样 Matimage2.copyTo(imageROI); // 将印章图放入获取的区域里面 return MatToUIImage(Matimage1); // 显示原图
相关文章推荐
- 【OpenCV学习笔记 023】两种图像分割方法比较
- shader学习基础之十一实现纹理的缩放平移和旋转,以及用c#代码合并两种贴图并且控制位置
- C# OpenCV学习笔记二之图像读写的两种方法
- OpenCV2学习笔记(四):两种图像分割方法比较
- 转:实例学习PHP程序对用户身份认证实现两种方法
- 基础学习笔记之opencv(2):haartraining前将统一图片尺寸方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- 学习笔记:自定义方法的两种实现方式
- 基础学习笔记之opencv(8):Mat - 基本图像容器
- 【OpenCV学习笔记】之四:二值图像细化方法/骨架提取----基于2.0 Mat接口
- OpenCV实现将三幅图像合并在一张图片
- 基础学习笔记之opencv(11):图像混合
- OpenCV学习--实现两幅图像的融合
- OpenCV: 实现将三幅图像合并在一张图片
- 基础学习笔记之opencv(9):Mat图像扫描
- 基础学习笔记之opencv(19):有关图像序列的直方图计算
- 转:实例学习PHP程序对用户身份认证实现两种方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- 基础学习笔记之opencv(5):实现鼠标选定矩形框
- C# OpenCV学习笔记三之图像捕捉及其灰度转换方法