openCV跌撞笔记(一):图像融合

本文主要通过图像金字塔来实现图像融合。(案例:苹果和橘子的左右融合)原理1. 高斯金字塔高斯金字塔包含了一系列低通滤波器,可以对图像进行下采样(pyrDown)和上采样(pyrUp)下采样:即缩小图片,会损失图像信息,具体步骤为:①对图像进行高斯内核卷积②将所有偶数行和列去除上采样:即放大图片,具体步骤为:①将图像在每个方向扩大为原来的两倍,新增的行和列以0填充②使用先前同...
摘要由CSDN通过智能技术生成

本文主要通过图像金字塔来实现图像融合。
(案例:苹果和橘子的左右融合)
在这里

原理

1. 高斯金字塔
高斯金字塔包含了一系列低通滤波器,可以对图像进行下采样(pyrDown)和上采样(pyrUp)

下采样:即缩小图片,会损失图像信息,具体步骤为:
①对图像进行高斯内核卷积
②将所有偶数行和列去除

上采样:即放大图片,具体步骤为:
①将图像在每个方向扩大为原来的两倍,新增的行和列以0填充
②使用先前同样的内核与放大后的图像卷积,获得 “新增像素”的近似值

2. 拉普拉斯金字塔
简单讲就是:原图像-先缩小后放大的图像,可以获得高频信息

具体关于金字塔方面的知识可以参考:一篇很好的入门教程~

3. 案例原理
网上有很多关于这方面的原理,这里就不一一赘述了,大致就是:
高斯金字塔上采样结果(低频信息)+拉普拉斯金字塔(高频信息)

代码

这里有用到以下素材:
mask:
在这里插入图片描述
apple:
在这里插入图片描述
orange:
在这里插入图片描述

#include <iostream>
#include "opencv.hpp"
using namespace cv;
using namespace std;

int main()
{
   
	Mat apple = imread("apple.png", IMREAD_ANYCOLOR); //读入无损源图像
	apple.convertTo(apple, CV_32F, 1.0 / 255.0);//进行色彩空间转换 scale=1.0/255.0归一
	Mat orange = imread("orange.png", IMREAD_ANYCOLOR);
	orange.convertTo(orange, CV_32F, 1.0 / 255.0);
	Mat mask = imread("mask.png");
	mask.convertTo(mask, CV_32F, 1.0 / 
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值