目录

分割

拼接


由于后面要进行图片的分割,所以就先做了一些准备。

要分割的图片如下:

分割

思路也比较简单,代码注释比较详细,看代码就行。

from cv2 import cv2
import numpy as np
import ospic_path = '.jpg' # 分割的图片的位置
pic_target = './result/' # 分割后的图片保存的文件夹
if not os.path.exists(pic_target):  #判断是否存在文件夹如果不存在则创建为文件夹os.makedirs(pic_target)
#要分割后的尺寸
cut_width = 512
cut_length = 512
# 读取要分割的图片,以及其尺寸等数据
picture = cv2.imread(pic_path)
(width, length, depth) = picture.shape
# 预处理生成0矩阵
pic = np.zeros((cut_width, cut_length, depth))
# 计算可以划分的横纵的个数
num_width = int(width / cut_width)
num_length = int(length / cut_length)
# for循环迭代生成
for i in range(0, num_width):for j in range(0, num_length):pic = picture[i*cut_width : (i+1)*cut_width, j*cut_length : (j+1)*cut_length, :]      result_path = pic_target + '{}_{}.jpg'.format(i+1, j+1)cv2.imwrite(result_path, pic)print("done!!!")

效果如下:

拼接

有了分割好的图片之后,后面可能还要进行拼接,拼接相对复杂一些。

代码如下:

from cv2 import cv2
import numpy as np
import os
# 分割后的图片的文件夹,以及拼接后要保存的文件夹
pic_path = '/result/'
pic_target = 'picture/'
# 数组保存分割后图片的列数和行数,注意分割后图片的格式为x_x.jpg,x从1开始
num_width_list = []
num_lenght_list = []
# 读取文件夹下所有图片的名称
picture_names =  os.listdir(pic_path)
if len(picture_names)==0:print("没有文件")else:# 获取分割后图片的尺寸img_1_1 = cv2.imread(pic_path + '1_1.jpg')(width, length, depth) = img_1_1.shape# 分割名字获得行数和列数,通过数组保存分割后图片的列数和行数for picture_name in picture_names:num_width_list.append(int(picture_name.split("_")[0]))num_lenght_list.append(int((picture_name.split("_")[-1]).split(".")[0]))# 取其中的最大值num_width = max(num_width_list)num_length = max(num_lenght_list)# 预生成拼接后的图片splicing_pic = np.zeros((num_width*width, num_length*length, depth))# 循环复制for i in range(1, num_width+1):for j in range(1, num_length+1):img_part = cv2.imread(pic_path + '{}_{}.jpg'.format(i, j))splicing_pic[width*(i-1) : width*i, length*(j-1) : length*j, :] = img_part# 保存图片,大功告成cv2.imwrite(pic_target + 'result.jpg', splicing_pic)print("done!!!")

拼接后的效果图如下:

注意:分割和代码采用文中的分割代码,拼接才能成功,或者保持相同的命名方式。

图片分割和图片合成(大图切割成小图,python代码)相关推荐

  1. “切割您的图片:将您的照片切割成四个完美的部分!“

    目录 简介: 源代码: 源代码说明: 效果如下所示: 简介: 在midjourney中通过描述生成图片,并将图片保存到文件夹下,然后使用photoshop切割成等大的四份.听起来就很麻烦,以下有一种方 ...

  2. python大图切成小图

    可以使用 Python 库 PIL (Python Imaging Library) 来实现切割大图片为小图片. 示例代码如下: from PIL import Image# 打开大图片 im = I ...

  3. python之PIL 大图拆分成小图

    前言 最近在做一个mmo的游戏,里面的大地图是一张非常巨大的图片,我们要根据玩家所在的位置,动态加载地块,这就需要我们把这张大图拆分成n行m列,本来想着美术就可以拆了,但是因为图片太多,给美术也增加了 ...

  4. Python小技巧:批量大图压缩成小图

    背景 客户提供了上千张30M以上的tif文件,小程序员们不注意将该图片作为网站中展示的图片.结果就是网站加载速度极慢,小朋友们开始分工进行人工裁剪了.作为很久不编程的码老汉必须出马了. 代码 利用免费 ...

  5. python的隐藏功能分享_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ##### class Torrents(): ''' Define a torrent ''' def __init__(self,torrent): ...

  6. 用python实现bt下载_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ##### class Torrents(): ''' Define a torrent ''' def __init__(self,torrent): ...

  7. 合并数据 - 合并多个Excel文件并转成CSV - Python代码

    在工作中,有时候因为部门间的数据权限问题,推送数据的时候往往是通过邮件完成,对于量大的数据,往往会拆成很多个excel发送,到下一个部门导入数据库之前,总是需要先将所有excel合成一个excel,再 ...

  8. 用Python分割九宫格图片发朋友圈

    近日,朋友圈流行起了发九宫格的图片,就是将一张图片切割成九张图,然后在朋友圈发九张,但看起来就像一张一样,这不,我楼下的小A就狂发了一堆. 看起来好像挺好玩的,于是就问了小A他是怎样做的,他跟我说要下 ...

  9. java 旋转图片_Java实现图片翻转以及任意角度旋转

    最近几天在做一个项目,因为涉及到了图片(绝大部分都不是整图,是把一张张的大图切成小图,也就是Title)的翻转以及90°旋转,弄得焦头烂额.在网上搜索好几天,发现用到的方法都是比较公式化的,对于只是在 ...

最新文章

  1. 基于希克斯需求价格弹性计算_Serverless弹性伸缩的现状调研(超详细)
  2. leetcode 113. 路径总和 II
  3. 不是技术也能看懂容器技术与容器平台
  4. k8s Dashboard部署Tomcat集群
  5. Level up - single parent navigation
  6. 周鸿祎详解360手机战略:赚钱不靠硬件靠服务
  7. Delphi以GDI+制作桌面歌词效果
  8. Linux 命令(75)—— uptime 命令
  9. HTML 5--Grouping and Nesting Styles
  10. 七日瘦身汤绝妙配方 - 生活至上,美容至尚!
  11. 数据分析 | 将业务问题转换为统计问题后,我看到了数字的真相
  12. Unity3D中英文对照手册
  13. 英雄联盟LOL JAVA版
  14. RabbitMQ学习笔记:虚拟主机(Virtual Hosts)
  15. 赛尔号眼球怎么抓_素描头像怎么画?素描入门基础画|自学素描基本入门教程...
  16. Android5.0之后打开开发者选项中的不保留活动,解决方案
  17. IP网络主动测评系统
  18. 简化版的DRCNN代码(Python)
  19. 分析和讯博客数据访问数和评论数
  20. 深度学习这么调参训练_深度学习调参技巧

热门文章

  1. springcloudconfig使用教程
  2. 三大世界级难题,等你来解答
  3. 神经网络与BP算法(代码实现)
  4. pipconda 搜索包|查看可安装包版本
  5. @Transactional的七种事务传播行为
  6. 使用gulp编译 sass和less
  7. 用不可逆算法MD5进行加密后,如何进行登录验证
  8. 联想小新使用Alt+insert快捷键
  9. shui0418笔记
  10. Thread优先级之优先级别