【数字图像处理】图像风格迁移

article/2025/9/18 8:48:32

代码和实验报告下载:http://download.csdn.net/detail/jsgaobiao/9523313


Ø  【作业要求】

设计自己的算法完成一个附图所示的图像风格迁移算法(基于matlab的快速实现)(很可能用到,并且鼓励使用)基于频率域的图像处理.

      除提交必要的作业文档外,每人必须提交1组附件图像做出的效果最佳的结果测试图,匿名投票评佳。

Ø  【文件说明】

main.m:

读取参考图片和目标图片,并进行图像风格迁移。

FFT.m:

对图像进行快速傅里叶变换,提取幅值和相位。

iFFT.m:

根据幅值和相位,对图像进行傅里叶反变换。

Reinhard.m:

使用Reinhard算法进行图像的色彩转移。

ChangeBrightness.m:

改变图像的亮度值。

 

Ø  【作业思路】

思路一:

根据老师课上提到的图像的幅值和相位的分解,我们可以认为图像频域的幅值记录了原图的颜色、各个频率分量的多少,图像频域的相位则保留了图像的细节信息。

在此基础上,观察作业的示例图片,我们可以发现风格迁移后的图像,保留了原图像的整体内容,但是丢弃了原图的色彩特征,转而采用参考图像的色彩特征(蓝、黑、黄)以及部分参考图像的细节信息(天空中的太阳)。

所以我的思路是:

对于原图:保留原图的相位(细节内容)丢弃原图的幅值(颜色信息),也就是将原图转化为灰度图像后,再做频域分解。

对于参考图:做频域分解,再与原图分解后的幅度、相位叠加,获得新图片。

 

但是经过尝试,效果并不好(从左到右:原图、参考图、合成图):

 

可以看出,合成图的颜色基本接近参考图,可以大概看出天空中太阳的轮廓,但是图中的噪声很多,图片很模糊。

也许直接将相位叠加的做法导致了这一结果,显然这个思路还需要改进。

 

思路二:

         在图像的分解和重建领域中,经常使用到小波变换的分解方法。小波变换的优点是有完善的重建能力,它能保证信号在分解过程中没有任何信息损失,即小波变换作为一组表示信号分解的基函数是唯一的。它可以将图像分解为模糊图像和细节图像之和。

         所以我尝试使用小波变换的方法合并图像。

这是直接用小波变换合并两张图像的结果,可以看出效果比之前好不少。但是依然存在两个问题:

1、 两张图片的颜色混合后,产生了一些色调偏差;

2、 参考图象(星空)过于明显,对原图产生了干扰,看起来比较混乱。

 

针对这两个问题我分别做了如下的尝试:

1、 色调的偏差是由于两张图片颜色的混合导致的,根据思路一中的分析,我们应该丢弃原图中的色彩信息,只保留参考图像(星空)的色彩信息。

但是,如果按照思路一中先将原图转换成灰度图像再融合图像的方式,合成后的图像会被”灰化”。经过查阅资料,我最后使用了Reinhard色彩转移算法——先将参考图像的色彩转移到原图,再进行图像的融合。

2、 因为两张图片的直接融合,几乎按照相同的比例保留了两张图片的细节部分,所以看起来非常的混乱。所以我们要区分出主次关系(原图的细节为主,参考图片的细节为次),所以我对参考图片进行了高斯模糊,并且降低了亮度后,再与原图融合,得到了不错的效果。

 

以下是一些效果图(从左起:原图、参考图、合成图,它们可能采用了不同的高斯模糊和小波变换的参数),

 


Ø  【小结和思考】

按照上述方式进行的风格化迁移,在部分图片的组合下取得了不错的效果。但是,有些图片的组合效果却不够理想,例如:

因为参考图中的白塔与背景对比非常强,所以高斯模糊、降低亮度等方式并不能缓解两张图片融合后的“冲突感”。而且,白塔图片本身的风格也不是特别明显,所以这样的两张图片的合并效果就十分有限了。

所以,与机器学习训练出来的结果相比,使用小波变换加Reinhard的算法具有快速、简单的优点,但是效果还是存在一定的差距的。



http://chatgpt.dhexx.cn/article/i9nfhDyx.shtml

相关文章

图像风格迁移 CycleGAN原理

CycleGAN是一种很方便使用的用于进行图像风格转换的模型。它的一大优势就在于不需要成对的数据集就可以进行训练。比如我们只需要随便一大堆真人图像和随便另一大堆动漫图像,就可以训练出这两类风格互相转换的模型。 CycleGAN进行风格转换的原理是这样的&#xff1a…

Python实现基于深度学习的图像风格迁移

目录 一、选题意义与背景介绍 3 1.1背景介绍 3 1.2选题意义 3 二、相关方法介绍 4 2.1纹理建模 4 2.2图像重建 4 2.3图像风格迁移 4 2.3.1基于在线图像优化的慢速图像风格化迁移算法 4 2.3.2基于离线模型优化的快速图像风格化迁移算法 5 2.4图像风格迁移效果评估 6 三、具体方法…

图片风格迁移

##将图片进行风格迁移,将第一幅图片的均值平均差换成第二幅图的均值平方差。第三张是生成的图片 from numpy.lib.type_check import _imag_dispatcher from builtins import print from os import pread import sys from PIL import Image,ImageStat import numpy …

图像风格迁移及代码实现

图像风格迁移其实非常好理解,就是将一张图像的“风格”(风格图像)迁移至另外一张图像(内容图像),但是这所谓的另外一张图像只是在“风格”上与之前有所不同,图像的“内容”仍要与之前相同。Luan…

(一)图像风格迁移

图像风格迁移即把图像A的风格和图像B的内容按照一定比例结合,输出具备图像A风格和图像B内容的图像C. [github传送门1]https://github.com/anishathalye/neural-style [github传送门2]https://github.com/Quanfita/Neural-Style/tree/master/examples 系列文章 (二)快速图像风格…

图像风格迁移与快速风格迁移的对比(感知损失)

最近一段时间要写数字图像处理的文献综述,《深度学习在图像风格迁移中的原理与应用综述》。只能感慨自己一时选题不审,导致期末火葬场啊…… 这个问题我纠结了一天,看了N多篇文献(全是英文的…),结果还是没…

图像风格迁移【老版】

深度学习目前为止最有用的东西是图像处理,我们可以用它在极早期判断癌症, 也可以用它在茫茫人海里寻找犯人,但是要我说你能写一个小程序取悦女朋友, 你就不一定能信, 这一招叫艺术风格变换,就是你点击一下&…

图像风格迁移-DSTN

样式传输的目的是从参考图像中再现具有样式的内容图像。现有的通用风格转换方法成功地以艺术或照片逼真的方式将任意风格传递给原始图像。然而,现有作品所定义的“任意风格”的范围由于其结构限制而在特定领域内受到限制。具体而言,根据预定义的目标域来…

学习笔记:图像风格迁移

所谓图像风格迁移,是指利用算法学习著名画作的风格,然后再把这种风格应用到另外一张图片上的技术。著名的国像处理应用Prisma是利用风格迁移技术,将普通用户的照片自动变换为具有艺术家的风格的图片。这篇文章会介绍这项技术背后的原理&#…

图像风格迁移实战

最近看了一些基于深度学习的Style Transfer, 也就是风格迁移相关的paper,感觉挺有意思的。 所谓风格迁移,其实就是提供一幅画(Reference style image),将任意一张照片转化成这个风格,并尽量保留原照的内容(Content)。之前比较火的…

Pytorch实现图像风格迁移(一)

图像风格迁移是图像纹理迁移研究的进一步拓展,可以理解为针对一张风格图像和一张内容图像,通过将风格图像的风格添加到内容图像上,从而对内容图像进行进一步创作,获得具有不同风格的目标图像。基于深度学习网络的图像风格迁移主要有三种类型,分别为固定风格固定内容的风格…

毕设 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这…

图像风格迁移

文章目录 前言一、传统的图像风格迁移(Traditional style transfer)1.1计算机图形学领域和计算机视觉领域(Computer Graphics&Computer Vision)1.2非真实感图形学(Non-photorealistic graphics)和纹理迁…

ARM SMMU的原理与IOMMU

首先放一个社区iommupatch的网址:https://lore.kernel.org/linux-iommu/ 1: arm smmu的原理 1.1: smmu 基本知识 如上图所示,smmu 的作用和mmu 类似,mmu作用是替cpu翻译页表将进程的虚拟地址转换成cpu可以识别的物理地址。同理,sm…

ARM SMMU学习笔记

1. 什么是SMMU? SMMU(system mmu),是I/O device与总线之间的地址转换桥。 它在系统的位置如下图: 它与mmu的功能类似,可以实现地址转换,内存属性转换,权限检查等功能。 2. 为什么需要SMMU? 了解…

SMMU架构手册之数据结构和转换流程(1)

SMMU使用内存中一组数据结构来放置转换数据。寄存器指向初始根结构STE的基地址。STE包含stage2转换表基地址指针,同时也指向stage1的配置结构,该配置结构包含转换表基指针。CD表示stage1转换,STE表示stage2转换。 因此SMMU使用两组明确的结构…

SMMU架构手册之数据结构和转换流程(2)

STE包含每个stream的配置: 是否使能来之设备的流量;是否是stage1转换;是否是stage2转换哪个数据结构定位到stage1的转换表 若使用stage1,STE使用域STE.S1ContextPtr来指示内存中的一个或多个CD的地址。 CD关联起streamID和stage1…

ARM_SMMU_上

本篇参考 arm 官网公开材料 和 小崔的linux 专栏 https://zhuanlan.zhihu.com/p/105005488 宋宝华老师MMU介绍 armv8-armv9 MMU深度学习 MMU简介 MMU是Memory Management Unit的缩写,中文名是内存管理单元。它是一种负责处理中央处理器(CPU)…

SMMU架构手册之数据结构和转换流程(3)

3. 配置和转换的查找 图中 描述了配置查找和转换查找所涉及的相关概念。 正如3.3.2中所描述的,传入的事务首先受配置查找的约束,而SMMU决定怎样开始进行事务的转换。这涉及到找到合适的STE,如果有必要也需要CD。 配置的查找不依赖于输入的地址…

简谈MMU与SMMU

在服务器的处理器firmware开发中,经常会遇到大家讨论MMU和SMMU的概念,而且会进一步讨论的相关的TLB和huge TLB概念。实不相瞒,一开始我是非常懵逼的,只是写code而已,最多是有用到MMIO来写device的寄存器,MM…