python实现图像拼接功能
利用Python将Market1501的分割图片和原图两张图片进行拼接成一左一右一张图片,并将图片的像素值调整成256*128.
所有文件夹:
文件夹下的所有原图:
文件夹下的所有的分割图片:
代码如下:
import PIL.Image as Image import os IMAGES_PATH = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/ori_img/' # 原图片集地址 IMAGES_PATH_1 = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/seg_img/' #分割图片集地址 IMAGE_SAVE_PATH = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/new/' #保存新图片地址 IMAGES_FORMAT = ['.jpg', '.JPG'] # 图片格式 list_n = [] w = 256 # 每张小图片的大小 h = 128 # 获取图片集地址下的所有图片名称 image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if os.path.splitext(name)[1] == item] image_names_1 = [name for name in os.listdir(IMAGES_PATH_1) for item in IMAGES_FORMAT if os.path.splitext(name)[1] == item] # 定义图像拼接函数 def image_compose(imag,imag_1): src = os.path.join(os.path.abspath(IMAGE_SAVE_PATH), img) to_image = Image.new('RGB', (2 * h, 1 * w)) # 创建一个新图 # 把两张图片按顺序粘贴到对应位置上 rom_image = Image.open(IMAGES_PATH + imag).resize((h,w), Image.ANTIALIAS) rom_image_1 = Image.open(IMAGES_PATH_1 + imag_1).resize((h, w), Image.ANTIALIAS) to_image.paste(rom_image,(0,0)) to_image.paste(rom_image_1,(h,0)) to_image.save(src) # 保存新图,还是原来的名称 #文件名相同就调用拼接函数 for img in image_names: for img_1 in image_names_1: if img == img_1: image_compose(img,img_1)
单独图片的拼接效果:
新文件夹new下图片的效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python实现图片横向和纵向拼接
本文实例为大家分享了python实现图片横向和纵向拼接的具体代码,供大家参考,具体内容如下 直接上代码: # -*- coding:utf-8 -*- __author__ = 'ShawDa' from PIL import Image def join(png1, png2, flag='horizontal'): """ :param png1: path :param png2: path :param flag: horizontal or vertical :re
-
python实现多张图片拼接成大图
本文实例为大家分享了python实现多张图片拼接成大图的具体代码,供大家参考,具体内容如下 上次爬取了马蜂窝的游记图片,并解决了PIL模块的导入问题,现在直奔主题吧: import PIL.Image as Image import os IMAGES_PATH = 'D:\Mafengwo\photo\五月坦桑的暖风,非洲原野的呼唤\\' # 图片集地址 IMAGES_FORMAT = ['.jpg', '.JPG'] # 图片格式 IMAGE_SIZE = 256 # 每张小图片的大小 IM
-
Python实现FLV视频拼接功能
文章摘要 本文简单说明了FLV文件的格式,以此为出发点,使用 Python 实现FLV视频的拼接. 一.FLV文件格式 关于FLV文件格式的解析网上有诸多文章,在这里就简单介绍一下需要了解的部分,以便读者更好地明白各段代码的功能. FLV文件是由文件头(Header)和文件体(Body)按顺序拼接而成.审查FLV内容时,以二进制方式读取内容. Header:文件头表明了文件的封装格式为FLV,存储对象为音频.视频或两者. 以下为FLV文件的Header,共 9 个字节: b'FLV\x01\x0
-
python+gdal+遥感图像拼接(mosaic)的实例
作为摄影测量与遥感的从业者,笔者最近开始深入研究gdal,为工作打基础!个人觉得gdal也是没有什么技术含量,调用别人的api.但是想想这也是算法应用的一个技能,多学无害! 关于遥感图像的镶嵌,主要分为6大步骤: step1: 1)对于每一幅图像,计算其行与列: 2)获取左上角X,Y 3)获取像素宽和像素高 4)计算max X 和 min Y,切记像素高是负值 maxX1 = minX1 + (cols1 * pixelWidth) minY1 = maxY1 + (rows1 * pixelH
-
python+OpenCV实现图像拼接
本文实例为大家分享了利用python和OpenCV实现图像拼接,供大家参考,具体内容如下 python+OpenCV实现image stitching 在最新的OpenCV官方文档中可以找到C++版本的Stitcher类的说明, 但是python版本的还没有及时更新, 本篇对python版本的实现做一个简单的介绍. 由于官方文档中还没有python版本的Stitcher类的说明, 因此只能自己去GitHub源码上找, 以下是stitching的样例: from __future__ import
-
Python+OpenCV实现图像的全景拼接
本文实例为大家分享了Python+OpenCV实现图像的全景拼接的具体代码,供大家参考,具体内容如下 环境:python3.5.2 + openCV3.4 1.算法目的 将两张相同场景的场景图片进行全景拼接. 2.算法步骤 本算法基本步骤有以下几步: 步骤1:将图形先进行桶形矫正 没有进行桶形变换的图片效果可能会像以下这样: 图片越多拼接可能就会越夸张. 本算法是将图片进行桶形矫正.目的就是来缩减透视变换(Homography)之后图片产生的变形,从而使拼接图片变得畸形. 步骤2:特征点匹配 本
-
python使用PIL剪切和拼接图片
本文实例为大家分享了python使用PIL剪切图片和拼接图片的具体代码,供大家参考,具体内容如下 因工作需要,接触到了PIL这个包,看其他人的博客踩了一些坑,有些博客并没有注明各个位置参数的含义,今天我就将他补全 切图 1.首先先下载一张图片,我使用的是1200*1200像素的图片,将它放置在G盘的img目录下 2. 我将这张图片切成四等分,我新建了两个文件,分别是img1.img2,用来存放图片 3. 代码 from PIL import Image img = Image.open('G:
-
python实现单张图像拼接与批量图片拼接
本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下 一.效果 二.代码 1.单张图片拼接 # 图片拼接 from PIL import Image # pil paste可以进行图片拼接 import cv2 import numpy as np path="F:/out/"+str(0)+".jpg" img_out=cv2.imread(path) num=5 for i in range(1,num): path="F
-
python实现图像拼接
本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下 1.待拼接的图像 2. 基于SIFT特征点和RANSAC方法得到的图像特征点匹配结果 3.图像变换结果 4.代码及注意事项 import cv2 import numpy as np def cv_show(name, image): cv2.imshow(name, image) cv2.waitKey(0) cv2.destroyAllWindows() def detectAndCompute(image):
-
python实现图像拼接功能
利用Python将Market1501的分割图片和原图两张图片进行拼接成一左一右一张图片,并将图片的像素值调整成256*128. 所有文件夹: 文件夹下的所有原图: 文件夹下的所有的分割图片: 代码如下: import PIL.Image as Image import os IMAGES_PATH = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/ori_img/' # 原图片集地址 IMAGES_PATH_1 = 'E:/gyx
-
怎样使用Python脚本日志功能
假设要开发一个自动化脚本工具,工程结构如下,Common这个package是框架功能的实现,Scripts目录是我们编写的测试用例脚本(请忽略其他不相关的目录). 我们对日志功能的需求如下: 1 为了便于日志的查看,每个脚本对应一个日志文件,日志文件以脚本的名字命名 2 日志路径以及每个脚本保存的日志容量可以设置,比如设置为5MB,则超过后最老日志被自动覆盖 3 日志功能要使用方便,减少与框架业务功能的耦合 现在来逐一分析上述需求. 1 要实现每个脚本一个日志文件,
-
python实现发送邮件功能
本文实例为大家分享了python实现发送邮件功能的具体代码,供大家参考,具体内容如下 依赖: Python代码实现发送邮件,使用的模块是smtplib.MIMEText,实现代码之前需要导入包: import smtplib from email.mime.text import MIMEText 使用163邮件发送邮件,具体代码实现如下: import smtplib from email.mime.text import MIMEText ''' 发送邮件函数,默认使用163smtp :pa
-
详解Python网络爬虫功能的基本写法
网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 1. 网络爬虫的定义 网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来.这样看来,网络爬虫就是一个爬行程序,一个抓取网页的
-
python实现发送邮件功能代码
本文实例为大家分享了python实现发送邮件功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # Author :Gogh # @Time :2017/11/28 16:56 # @Email :361910002@qq.com from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils im
-
Python定义函数功能与用法实例详解
本文实例讲述了Python定义函数功能与用法.分享给大家供大家参考,具体如下: 1.函数的意义 一般数学上的函数是,一个或者几个自变量,通过某种计算方式,得出一个因变量. y = f(x) 在Python中,为了使操作更加简洁,就引入了函数这个概念. Python中的函数,可以把一大串要反复使用的代码"定义"(封装)成一个函数,给予这个函数一个标识符作为函数名,设置自变量和因变量.然后要使用这一大串代码的时候,就调用这个我们自己创造的函数,输入自变量,然后会返回给我们因变量. 2.函数
-
python opencv 图像拼接的实现方法
初级的图像拼接为将两幅图像简单的粘贴在一起,仅仅是图像几何空间的转移与合成,与图像内容无关.高级图像拼接也叫作基于特征匹配的图像拼接,拼接时消去两幅图像相同的部分,实现拼接合成全景图. 具有相同尺寸的图A和图B含有相同的部分与不同的部分,如图所示: 用基于特征的图像拼接实现后: 设图像高为h,相同部分的宽度为wx 拼接后图像的宽w=wA+wB-wx 因此,可以先构建一个高为h,宽为W*2的空白图像,将左图像向右平移wx,右图像粘贴在右侧.则右图像刚好覆盖左图像中的相同部分
-
Python subprocess模块功能与常见用法实例详解
本文实例讲述了Python subprocess模块功能与常见用法.分享给大家供大家参考,具体如下: 一.简介 subprocess最早在2.4版本引入.用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值. subprocess用来替换多个旧模块和函数: os.system os.spawn* os.popen* popen2.* commands.* 运行python的时候,我们都是在创建并运行一个进程,linux中一个进程可以fork一个子进程,并让这个子进程ex
-
Python 实现某个功能每隔一段时间被执行一次的功能方法
本人在做项目的时候遇到一个问题: 某个函数需要在每个小时的 3 分钟时候被执行一次,我希望我 15:45 启动程序,过了18 分钟在 16:03 这个函数被执行一次,下一次过 60 分钟在 17:03 再次被执行,下一次 18:03,以此类推. 以下是我基于 Timer 做的再封装实现了此功能. # -*- coding: utf-8 -*- # ================================================== # 对 Timer 做以下再封装的目的是:当某个
-
Python魔法方法功能与用法简介
本文实例讲述了Python魔法方法功能与用法.分享给大家供大家参考,具体如下: 1.什么是魔法方法? 魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动触发的.它们经常是两个下划线包围来命名的(比如 __init__,__lt__),Python的魔法方法是非常强大的,所以了解其使用方法也变得尤为重要! 2.__init__(self[, ...]),__ne
随机推荐
- tweakomatic hta 下载
- MongoDB 游标详解及实例代码
- Jquery遍历checkbox获取选中项value值的方法
- mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法
- vbs复制文件的脚本
- java实现文件变化监控的方法(推荐)
- ASP.NET实现用图片进度条显示投票结果
- 让JavaScript中setTimeout支持链式操作的方法
- C#启动和停止windows服务的实例代码
- PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
- Java类获取Spring中bean的5种方式
- xcode中获取js文件的路径方法(推荐)
- jquery ui dialog ie8出现滚动条的解决方法
- c语言中static和extern的用法详细解析
- java二叉查找树的实现代码
- Java 中的 BufferedReader 介绍_动力节点Java学院整理
- Android编程动态加载布局实例详解【附demo源码】
- 使用 C# 动态编译代码和执行的代码
- c#对象初始化顺序实例分析
- C#复合模式(Composite Pattern)实例教程