图像梯度域融合
来源:互联网 发布:php平台搭建 编辑:程序博客网 时间:2024/05/01 09:11
图像梯度域融合
- 图像梯度域重建
- 图像泊松编辑
- 混合梯度融合
- 彩色图像灰度化的问题
图像梯度域重建
-原理
该问题中心思想是利用梯度实现灰度图像的重建。为后面的问题作铺垫。
该问题用到了梯度与最小二乘的思想。
求矩阵v使e达到最小。
现在我们需要相对于源图像s重建一副灰度图像v,重建图像v的方向梯度应该与源图像s的方向梯度一致。这可以转化为最小二乘问题:
1) 最小化:( v(x+1,y)-v(x,y) - (s(x+1,y)-s(x,y)) )^2
图像v的x方向梯度应该和源图像s的x方向梯度一致。
2) 最小化 ( v(x,y+1)-v(x,y) - (s(x,y+1)-s(x,y)) )^2
图像v的y方向梯度应该和源图像s的y方向梯度一致。
但是这样重构出来的图像v不唯一,因此为了和源图像一致,加入限制条件:重构图像左上角的灰度值等于源图像左上角的灰度值。转化为最小二乘问题:
3) 最小化 (v(1,1)-s(1,1))^2
重构图像v左上角的灰度值等于源图像s左上角的灰度值。
因此,我们可以将问题转化为最小化(Av-b)^2,“A”是一个稀疏矩阵,表示求梯度的算子。“b”是一个已知的向量是由求得的梯度组成。“v”为要求的重建图像。
泊松图像编辑
图像融合是图像处理的一个基本问题,其通过将源图像中一个物体或者一个区域嵌入到目标图像生成一个新的图像,在对图像进行融合的过程中,为了使合成后的图像更加自然,合成边界应保持无缝。但如果原图和目标图像有着明显不同的纹理特征,则直接合成后的图像会存在明显的边界。针对这个问题,提出了一种利用构造泊松方程求解像素最优值的方法,在保留了源图像梯度信息的同时,可以很好的融合源图像与目标图像的背景。该方法根据用户指定的边界条件求解一个泊松方程,实现梯度域上的连续,从而达到边界处的无缝融合
泊松图像编辑的主要思想是,根据图像的梯度信息以及目标图像的边界信息,利用插值的方法重建出合成区域内的图像像素。如上图所示,其中μ表示原图中被合成的部分,V是μ的梯度场,S是合成后的图像, 是合成后目标图像中被覆盖的区域, 是其边界。
该方法所用的核心数学工具是带狄里克雷边界条件的泊松偏微分方程,狄里克雷边界条件指定了在影响域内未知函数的拉普拉斯算子,以及在区域边界上的未知函数值的拉普拉算子。由数学知识可知,泊松方程表达式如下:
-算法实现
步骤1、 计算图像的梯度场。通过差分的方法,可以求得图像的梯度场v:
步骤2、计算背景图片的梯度场
步骤3、计算融合图像的梯度场,将ROI的梯度场覆盖到S的梯度场上:
步骤4、求解融合图像的散度,对重建图像的梯度场求偏导,从而获得散度。
步骤5、求解系数矩阵。
Ax=b,中b是散度,A为拉普拉斯算子构成的稀疏矩阵
-结果
1) 选取源图像和目标图像的目标区域。利用约束条件求得v,将求的的v复制进目标区域既得到了融合后的图像
混合梯度
对某些图像处理的应用,在混合梯度域下处理可以得到比在梯度域下处理更好的效果。混合梯度域下的图像处理实际上把图像处理过程中所使用的梯度转化为混合梯度,具体的过程和上面的图像融合类似。
主要区别在于约束方程:
-实验结果
可以看出泊松融合之后,合成部分的背景与原图背景不接近,对于这种源图像中感兴趣区域与背景区域有较大梯度差的图像,使用混合梯度法融合可以去到比较好的结果。
彩色图像转灰度图像
当我们把彩色图像转化为灰度图像时,有时会丢掉很多对比度信息。如下图,直接用rgb2gray得到的结果:
由于HSV的彩色空间是最接近人眼观察的特征,所以先将图像转化为HSV彩色空间,分为三个通道:Hue,S,V (色度,饱和度,亮度)。对于上述图像,转化为灰度图像时,彩色部分的亮度与灰色部分的亮度基本相似,将V通道作为融合的背景。将Hue的通道作为融合的目标,因为主要是颜色不同的对比度。对Hue 和 V进行混合梯度融合。
由于以Hue和V中相对位置梯度大的像素作为融合指导,可以保留色彩的对比度信息,从结果图中可以明显看出原图像中的彩色部分。
/stackedit
- 图像梯度域融合
- 图像融合(五)-- 梯度金字塔
- 图像融合(五)-- 梯度金字塔
- 梯度、散度和旋度及在图像处理中的应用(图像融合)
- 图像融合
- 图像融合
- 图像融合
- 图像融合
- 图像融合
- 图像融合
- 图像梯度
- 梯度图像
- 图像梯度
- 图像梯度
- 图像梯度
- 图像融合之拉普拉斯融合
- 【图像融合】简单加权融合
- 【图像融合】拉普拉斯金字塔融合
- java基础面试知识点小结
- 过滤器
- SeekBar的简单使用
- c#实现16进制和字符串之间转换的代码
- sprintf的用法
- 图像梯度域融合
- 我是一个菜鸟java程序员,但是,我会一直努力的哦
- Stack
- 三维人脸_无法打开gl\glaux.h头文件及无法生成 SAFESEH 映像的解决方法
- c/c++之模板方法实现归并排序
- <iOS>动态改变导航栏颜色
- JDBC 笔记3 通过PreparedStatement 对数据库进行增删改查
- MySQL Fabric 高可用性
- Android:Java.lang.IllegalStateException Activity has been destroyed