【无标题】Image-to-Image Translation 图像风格迁移中的成对图像拼接代码

news2024/11/15 17:21:33

引 言 在图像风格迁移任务中,近几年比较火热的Generative Adversarial Nets (GAN)模型以及各种变体深受视觉研究团体的青睐,在具体任务中取得比较不错的实验表现。在有监督图像风格迁移任务迁移中,需要输入给模型成对的图片(一个来自源域source domain,一个来自目标域target domain)。成对图像底层内容可以相同,pix2pix模型主要研究这类图像集合,图像底层内容也可以不同,CycleGAN模型主要解决底层内容不同的风格迁移问题。在图像输入模型前需要对图像进行预处理,可以将两个领域的图像拼接成一张图作为模型的输入。本文主要讲述两个用于图像拼接处理的代码。代码来源于文章【Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks】[paper] [Project code]

文章目录

  • 一、PIL库实现图像拼接
  • 二、cv2库实现图像拼接
  • 三、总结

一、PIL库实现图像拼接

图像拼接的前提条件是两张图具有相同的尺寸,若尺寸不同需要采用缩放、裁剪等策略对图像进行预处理。调用Image.new(mode, size)创建拼接图,通过 paste()函数将两张图片粘贴到指定位置。
示例代码:

def align_images(a_file_paths, b_file_paths, target_path):
    if not os.path.exists(target_path):
        os.makedirs(target_path,exist_ok=True)

    for i in range(len(a_file_paths)):
        img_a = Image.open(a_file_paths[i])
        img_b = Image.open(b_file_paths[i])
        assert(img_a.size == img_b.size)

        aligned_image = Image.new("RGB", (img_a.size[0] * 2, img_a.size[1]))
        aligned_image.paste(img_a, (0, 0))
        aligned_image.paste(img_b, (img_a.size[0], 0))
        aligned_image.save(os.path.join(target_path, '{:04d}.jpg'.format(i)))

if __name__ == '__main__':
    img_A_path = './2007_000121.jpg'
    img_B_path = './2007_000123.jpg'
    img_AB_dir = './AB/splice'
    align_images([img_A_path], [img_B_path], img_AB_dir)

图片效果
在这里插入图片描述

二、cv2库实现图像拼接

首先调用cv2.imread()函数读取两张图片,将两张图片拼接后调用cv2.imwrite()函数写入到新图片文件中。
示例代码

def image_write(path_A, path_B, path_AB):
    if not os.path.exists(path_AB):
        os.makedirs(path_AB,exist_ok=True)
    im_A = cv2.imread(path_A, 1) # python2: cv2.CV_LOAD_IMAGE_COLOR; python3: cv2.IMREAD_COLOR
    im_B = cv2.imread(path_B, 1) # python2: cv2.CV_LOAD_IMAGE_COLOR; python3: cv2.IMREAD_COLOR
    im_AB = np.concatenate([im_A, im_B], 1)
    img_save = os.path.join(path_AB,'concate.jpg')
    cv2.imwrite(img_save, im_AB)

if __name__ == '__main__':
    img_A_path = './2007_000121.jpg'
    img_B_path = './2007_000123.jpg'
    img_AB_dir = './AB/splice'
    image_write(img_A_path,img_B_path,img_AB_dir)

三、总结

在视觉项目中,图像数据集的预处理是一个非常重要的关键环节,在CycleGAN的项目代码中除本文 描述的一个小细节外,还有很多图像数据预处理代码值得大家学习和引用。在引言部分给出了项目代码的 hub库。想要阅读项目代码的同学可以自行下载学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国气膜技术蓬勃发展:专业公司脱颖而出

气膜技术最早起源于美国,凭借其低造价、快速安装、可移动、可重复使用等独特优势,迅速成为体育、仓储、展览、会议、传媒等行业的首选临时或简易室内空间解决方案。21世纪以来,中国逐步引进并发展了膜结构技术,包括骨架膜、张拉膜…

Spire.PDF for .NET【文档操作】演示:创建 PDF 组合

PDF 作品集是一组文件,其中可以包含文本文档、电子表格、电子邮件、图像、PowerPoint 演示文稿和绘图。尽管 PDF 作品集将不同类型的文件组合成一个单元,但其中的每个文件都保留了其原始格式、分辨率和大小。在本文中,您将学习如何使用Spire.…

音频分割软件有什么?最方便的音频分割软件分享给你

一段长音频就像是一本厚重的百科全书,而音频剪辑师的任务,就是要将这本书拆分成数个章节,每章都有其独立的主题和内容,这非常考验剪辑师们的音频分割技巧。 幸运的是,随着技术的发展,市面上出现了许多优秀…

Dell Precision3591 自带RTX2000 Ada + 雷索坞外界3090显卡

问题: 插上雷索坞之后会自动安装驱动,但是自带的驱动可能跟当前的操作系统不兼容,所以安装失败,同时把自带的独立显卡的驱动给搞坏 解决办法: 先把自带的Ada 显卡驱动disable 然后找到跟系统匹配的驱动 GeForce Ga…

考研交流平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图详细视频演示技术栈系统测试为什么选择我官方认证玩家,服务很多代码文档,百分百好评,战绩可查!!入职于互联网大厂,可以交流,共同进步。有保障的售后 代码参考数据库参…

上交2024最新-《动手学大模型》实战教程及ppt分享!

本课介绍 今天分享一个上海交大的免费的大模型课程,有相关教程文档和Slides,目前是2.2K星标,还是挺火的! 《动手学大模型》系列编程实践教程,由上海交通大学2024年春季《人工智能安全技术》课程(NIS3353&…

使用IDEA开发Java Web项目

下载Tomcat 首先,下载Apache Tomcat并解压到本地计算机,可存放于任何位置。 另外,需要在系统中环境JRE_HOME环境变量,以保证Tomcat可以正常启动,具体配置方式请参考其它教程。 创建Java Web项目 在IntelliJ IDEA的欢…

Swift 数据类型之可选值类型(Optional)详解

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

其实很多数据资产平台建设,没有抓住本质

其实很多企业都有建设所谓的数据资产管理平台,但本质没有抓住,叫数据管理平台可能更为贴切。原因就是大部分企业谈数据资产,都是泛泛而谈,什么是数据资产都没有弄明白,就先把功能开发好,设计出来。这种本末…

《黑神话·悟空》提高了多少游戏人的热情

《黑神话:悟空》的发布极大地提振了游戏人的热情,不管是国内游戏的带动,还是全球国产游戏的崛起,开启了国产3A游戏元年,下面我从主要两个大点来分析下。 玩家层面: 高度热情加强力追捧:从 202…

如何在算家云搭建模型MimicMotion(运动模仿)

MimicMotion (运动模仿)是具有置信感知姿势指导的高质量人体运动视频生成模型。只需要上传一张人物照片,然后再上传一段人物的舞蹈或者动作视频,就可以生成以照片中人物为原型的动作或者舞蹈视频。它可以在任何运动引导下生成任意…

采用先进的人工智能视觉分析技术,能够精确识别和分析,提供科学、精准的数据支持的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本可通过边缘计算技术…

环网交换机的特殊作用是什么?

环网交换机作为现代网络建设的重要组成部分,具有独特而特殊的作用。在信息技术迅猛发展的今天,各类数据传输和网络连接需求日益增加,环网交换机的出现为解决这些问题提供了理想的方案。环网交换机通常将多个网络节点通过环形结构连接起来&…

Redis7基础篇(九)

springboot集成redis 目录 springboot集成redis 总体概述 java连接redis常见问题 集成jedis 集成lettuce 集成redistemplate 连接单机 ​编辑​编辑​编辑redis集群 总体概述 java要想连接mysql的话需要jdbc java想要连接redis也需要中间件 jedis是第一代 lettuce第…

python-纸牌游戏(赛氪OJ)

[题目描述] 今天你与你的挚友玩一种纸牌游戏,每一回合两人各出一张牌,如果你的牌点数大小比对方小,则你不得分,否则你的得分为两张卡牌点数差值的绝对值。 由于你有读心术,你已经知道了对方接下来要出的 n 张牌,a1​,a2​,a3​...an​。你手上…

排序问题记录-杂记

倒叙整数溢出导致没有严格按照顺序排序 实例 输出 没有按照实际大小倒排 可以替换其他方法 比如: (1)list.sort((o1, o2) -> Integer.compare(o2.getUserId(), o1.getUserId())); (2)list.sort(Comparator.comp…

Java Web —— 第七天(Mybatis案例 部门管理)

环境搭建 准备数据库表(dept、emp) -- 部门管理 create table dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null commen…

网络分层(基础概念)

网络互连模型: OSI 参考模型 1.物理层 2.数据链路层 3.网络层 4.运输层5.会话层6.表示层7.应用层 TCP/IP协议: 1.网络接口层 2.网际层 3.运输层 4.应用层 1,物理层 定义接口标准、结缆标准、传输速率、传输方式等。 信道 信息传输的通道,一条传输介质上可以有…

武汉流星汇聚:体育热潮驱动市场新高峰,体育用品迎来发展黄金期

在全球体育产业的蓬勃发展中,法国作为体育大国,其深厚的体育文化底蕴和广泛的运动普及度,为体育用品市场注入了源源不断的活力。随着足球、徒步、网球等运动的持续升温,以及国际体育赛事如奥运会的临近,体育用品市场正…

量子加密算法:保障信息安全的新利器

随着信息技术的飞速发展,信息安全问题日益凸显。量子加密算法作为一种新型加密技术,以其独特的优势逐渐成为保障信息安全的重要手段。本文将简要介绍量子加密算法的原理、特点及其在我国的应用前景。 一、量子加密算法的原理 量子加密算法是基于量子力学…