1.  

1.图片分块

  1. import os
  2. import matplotlib.pyplot as plt
  3. import cv2
  4. import numpy as np
  5.  
  6. def divide_img(img_path, img_name, save_path):
  7. imgg=img_path+img_name
  8. img = cv2.imread(imgg)
  9. # img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
  10. h = img.shape[0]
  11. w = img.shape[1]
  12. n=8
  13. m=8
  14. print('h={},w={},n={},m={}'.format(h,w,n,m))
  15. dis_h=int(np.floor(h/n))
  16. dis_w=int(np.floor(w/m))
  17. num=0
  18. for i in range(n):
  19. for j in range(m):
  20. num+=1
  21. print('i,j={}{}'.format(i,j))
  22. sub=img[dis_h*i:dis_h*(i+1),dis_w*j:dis_w*(j+1),:]
  23. cv2.imwrite(save_path + '_{}.tif'.format(num),sub)
  24.  
  25. if __name__ == '__main__':
  26.  
  27. img_path = 'D:\\PycharmDOC\\divide_test_photo\\s1\\'
  28. save_path = 'D:\\PycharmDOC\\divide_test_photo\\s2\\'
  29. img_list = os.listdir(img_path)
  30. for name in img_list:
  31. divide_img(img_path,name,save_path)

  

2.图片拼接

  1. import PIL.Image as Image
  2. import os
  3.  
  4. IMAGES_PATH = 'D:\\PycharmDOC\\divide_test_photo\\s3\\' # 图片集地址
  5. IMAGES_FORMAT = ['.jpg', '.tif'] # 图片格式
  6. IMAGE_SIZE = 128 # 每张小图片的大小
  7. IMAGE_ROW = 8 # 图片间隔,也就是合并成一张图后,一共有几行
  8. IMAGE_COLUMN = 8 # 图片间隔,也就是合并成一张图后,一共有几列
  9. IMAGE_SAVE_PATH = 'D:\\PycharmDOC\\divide_test_photo\\pj.tif' # 图片转换后的地址
  10.  
  11. # 获取图片集地址下的所有图片名称
  12. image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
  13. os.path.splitext(name)[1] == item]
  14.  
  15. # 简单的对于参数的设定和实际图片集的大小进行数量判断
  16. if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
  17. raise ValueError("合成图片的参数和要求的数量不能匹配!")
  18.  
  19. # 定义图像拼接函数
  20. def image_compose():
  21. to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #创建一个新图
  22. # 循环遍历,把每张图片按顺序粘贴到对应位置上
  23. for y in range(1, IMAGE_ROW + 1):
  24. for x in range(1, IMAGE_COLUMN + 1):
  25. from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize(
  26. (IMAGE_SIZE, IMAGE_SIZE),Image.ANTIALIAS)
  27. to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
  28. return to_image.save(IMAGE_SAVE_PATH) # 保存新图
  29. image_compose() #调用函数

利用python的图像分块与拼接的更多相关文章

  1. Python PIL 图像缩小、拼接

    比较各种不同取样方式的图像缩放效果. [NEAREST, BILINEAR, BICUBIC, LANCZOS, BOX, HAMMING]NEAREST取样方式是效果最差的,PIL.Image.re ...

  2. 利用Python覆盖图像的某一部分,即改变图形一块区域(Region)的RGBA值

    原图如下: 改变过后的图如下: 查阅API写法如下: from PIL import Image from PIL import ImageDraw pilim = Image.open('1.jpg ...

  3. 利用python进行简单的图像处理:包括打开,显示以及保存图像

    利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...

  4. 如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  5. 基于SURF特征的图像与视频拼接技术的研究和实现(一)

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  6. 利用python进行数据分析之绘图和可视化

    matplotlib API入门 使用matplotlib的办法最常用的方式是pylab的ipython,pylab模式还会向ipython引入一大堆模块和函数提供一种更接近与matlab的界面,ma ...

  7. 利用python进行数据分析之数据规整化

    数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键 ...

  8. 利用python web框架django实现py-faster-rcnn demo实例

    操作系统.编程环境及其他: window7  cpu  python2.7  pycharm5.0  django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...

  9. 利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

随机推荐

  1. jq无限极树结构

    //群组树结构$(function () { var params= { "companyId":cmpId }; var loadUrl="/apiv2/classif ...

  2. ArcEngine介绍

    一.ArcEngine简介ArcEngine被定位为一个嵌入式的产品,它并非面向最终用户,而是一个面向开发者的产品.对于繁冗的GIS开发工作而言,理想的解决方案是一个基于组件的实用的开发框架,且该框架 ...

  3. mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  4. Delphi 适合于文本文件的基本操作

  5. xorm:golang的orm(只写了一小部分)

    xorm xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便.这个库是国人开发的,是基于原版 xorm:https://github.com/go-xorm/xorm 的定制 ...

  6. zabbix 启到不起来:active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)

    cat /var/log/zabbix_agent_log 查看日记出现报错:active check configuration update from [127.0.0.1:10051] star ...

  7. win7安装xmanager报错error1303、err1317

    安装xmanager时出现的一些问题,记录如下. 1.安装xmanager时,提示error1303.如下图,按照百度的办法,创建相应的文件夹后,点击重试. 2.重试后提示err1317,如下图所示. ...

  8. Druid连接池错误(数据库版本问题)

    前提 jdbc驱动: mysql-connector-java.8.0.13.jar durid依赖包:durid-1.0.9.jar mysql版本: mysql 8.0 1 错误 1.1 错误一 ...

  9. Coding 账户与 本地 Git 客户端的配置

    1.先创建cooding账户 ,注册地址:https://coding.net/ 2.创建好账户后登陆,在个人设置中  验证邮箱 和 验证手机 (邮箱很重要配置需要用到) 3.安装git 客户端 (在 ...

  10. vue 绑定class、v-bind:style(对象语法、数组语法)

    绑定 HTML Class 我们可以传给 v-bind:class 一个对象,以动态地切换 class: 内联样式在模板里 <div id="div1" :class=&qu ...