Opencv step by step - 图像融合
2014-11-02 15:33
295 查看
两个图像的融合就是像素的融合了,其实手动操作即可,用函数操作更方便了。
下面代码的作用是融合阿狸和doctor,很和谐有木有!
#include <cv.h>
#include <highgui.h>
int main(int argc,char **argv)
{
IplImage *src1 = cvLoadImage(argv[1],1);
IplImage *src2 = cvLoadImage(argv[2],1);
cvNamedWindow("image output");
cvSetImageROI(src1,cvRect(70,70,81,108));
//cvSetImageROI(src2,cvRect(0,0,81,108));
cvAddWeighted(src1, 1, src2, 1, -256, src1);
cvResetImageROI(src1);
cvShowImage("image output", src1);
cvWaitKey();
cvReleaseImage(&src1);
cvReleaseImage(&src2);
cvDestroyWindow("image output");
return 0;
}
核心函数是cvAddWeighted,这里是1+1的融合,-256应该是融合后的亮度增益吧,我调到最小了。如果这个不调的话阿狸会有白色区域的,不太好看。
阿狸素材:
下面代码的作用是融合阿狸和doctor,很和谐有木有!
#include <cv.h>
#include <highgui.h>
int main(int argc,char **argv)
{
IplImage *src1 = cvLoadImage(argv[1],1);
IplImage *src2 = cvLoadImage(argv[2],1);
cvNamedWindow("image output");
cvSetImageROI(src1,cvRect(70,70,81,108));
//cvSetImageROI(src2,cvRect(0,0,81,108));
cvAddWeighted(src1, 1, src2, 1, -256, src1);
cvResetImageROI(src1);
cvShowImage("image output", src1);
cvWaitKey();
cvReleaseImage(&src1);
cvReleaseImage(&src2);
cvDestroyWindow("image output");
return 0;
}
核心函数是cvAddWeighted,这里是1+1的融合,-256应该是融合后的亮度增益吧,我调到最小了。如果这个不调的话阿狸会有白色区域的,不太好看。
阿狸素材:
相关文章推荐
- Opencv step by step - 图像融合
- Opencv step by step - 图像载入
- Opencv step by step - 图像载入
- Opencv step by step - 视频变换
- opencv 两幅图像融合
- Opencv step by step - 阈值化
- OpenCV on Mac OSX: A step-by-step guide
- Opencv step by step - 基本数据类型
- Opencv step by step - 自适应阈值
- OPENCV 图像融合方法
- opencv图像拼接与融合
- Opencv实现两幅图像融合
- Opencv step by step - 自适应阈值
- 图像融合实现CT与PET图像的融合 OpenCV实现(附实验结果)
- OpenCV探索之路 图像拼接和图像融合技术
- OpenCV操作矩阵和图像的函数之加和阿尔法融合(add)
- Opencv学习——图像融合
- OpenCV - 简单图像融合
- Opencv step by step - 加载视频
- Opencv学习笔记(2)模块,图像读取、显示、叠加、融合、颜色分离、亮度、对比度