python批处理进行剪裁图片与图片拼接

今天在做毕设答辩视频的时候,需要批处理剪裁图片,并且将批处理图片两两拼接,手动一张一张地改费时费力,于是想到用python实现了批处理,计算机不愧是干重复工作的好帮手。
首先,将图片剪裁为需要的大小(比如剪裁掉图片中的空白部分)。这个代码直接将剪裁后的图片代替了原来的图片,如果想要存到不同的文件夹,需要将存储时的文件夹位置改变。
其中,box1 = (0, 0, 1350, 1074) 表示剪裁后左边框离原图左边的距离、上边框离原图上边的距离、右边框离原图左边的距离、下边框离原图上边的距离,这个距离可以根据img.size打印出的图片大小来自己衡量剪裁多少。

# coding: utf-8
from PIL import Image
import os
import os.path
import numpy as np

# 指明被遍历的文件夹
rootdir = r'D:\four\'
for parent, dirnames, filenames in os.walk(rootdir):  # 遍历每一张图片
    for filename in filenames:
        print('parent is :' + parent)
        print('filename is :' + filename)
        currentPath = os.path.join(parent, filename)
        print('the fulll name of the file is :' + currentPath)

        img = Image.open(currentPath)
        print(img.format, img.size, img.mode)

        box1 = (0, 0, 1350, 1074)  # 设置左、上、右、下的坐标
        image1 = img.crop(box1)  # 图像裁剪
        #image1.show()
        image1.save(r"D:\four" + '\\' + filename)  # 存储裁剪得到的图像

然后,将两个文件夹中的不同图片一一对应拼接。比如第一个文件夹中的第一张与第二个文件夹中的第一张图片拼接。

from os import listdir
from PIL import Image
import os.path

def pinjie():
	rootdir1 = r'D:\four\多图片文件夹1'
    rootdir2 = r'D:\four\多图片文件夹2'  
    path1=[]  #存放图片路径
    path2=[]
    for parent, dirnames, filenames in os.walk(rootdir1):  # 遍历每一张图片
        for filename in filenames:
            # print(filename)
            currentPath = os.path.join(parent, filename)
            path1.append(currentPath)
    for parent, dirnames, filenames in os.walk(rootdir2):  # 遍历每一张图片
        for filename in filenames:
            # print(filename)
            currentPath = os.path.join(parent, filename)
            path2.append(currentPath)
    print(path1)
    print(path2)

    for i in range(0, 36):#这个范围是你要做拼接的次数。
        currentPath1 = path1[i]
        currentPath2 = path2[i] 

        img1 = Image.open(currentPath1)
        img2 = Image.open(currentPath2)
        width, height = img1.size
        # print(width,height)
    # # 创建空白长图
        result = Image.new(img1.mode, (width*2, height))
        result.paste(img2, box=(0,0)) #把图片2的左上角位置粘到(0,0)的位置
        result.paste(img1, box=(1350,0)) #图片1的左上角位置粘到(图片2的宽度,0)的位置
        # result.show()
    # 保存图片 
        result.save(r"D:\four\%d.png"%i)


if __name__ == '__main__':
    pinjie()

于是,实现了中国地图与世界地图的拼接.

多张世界地图
+
多张中国地图
=完成后:在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种广泛使用的编程语言,支持图像处理。这种语言非常适合进行批量处理,因为它可以自动化重复任务,提高工作效率,减少错误。 图片裁剪是图像处理中的基本操作,常用于删除不需要的部分或调整图像大小。Python提供了许多库来进行图像处理,最常用的是Pillow。使用Pillow,我们可以很容易地进行图片批量处理。 要进行批量处理,需要先遍历文件夹中的所有图片文件,然后对每个文件进行裁剪。以下是一个简单的示例代码: ``` from PIL import Image import os # 读取文件夹中所有的图片文件 folder_path = 'image_folder' for filename in os.listdir(folder_path): if filename.endswith('.jpg') or filename.endswith('.png'): # 打开并裁剪图片 img_path = os.path.join(folder_path, filename) img = Image.open(img_path) cropped_img = img.crop((100, 100, 300, 300)) # 保存裁剪后的图片 save_path = os.path.join(folder_path, 'cropped_' + filename) cropped_img.save(save_path) ``` 在上面的代码中,我们首先遍历了文件夹中所有以.jpg或.png为后缀名的图片文件。然后,使用`Image.open()`打开每个图片文件,接着使用`crop()`函数裁剪了图片,最后使用`save()`函数保存裁剪后的图片。 裁剪的参数是一个元组,前两个数代表左上角的坐标,后两个数代表右下角的坐标。在这个例子中,裁剪的大小为200×200像素,左上角的坐标为(100, 100),右下角的坐标为(300, 300)。 总之,Python可以很容易地进行图片批处理裁剪,使用Pillow库中的函数和遍历文件夹的技巧即可实现。这种方法可以显著加快处理图片的速度,使得我们可以更加专注于更高级的图像处理任务。 ### 回答2: Python是目前比较热门的编程语言之一,其强大的图像处理能力也备受开发者的关注。其中一种常见的处理图片的方法是批处理裁剪,下面就来谈一谈如何通过Python进行批量的图片裁剪。 首先,我们需要安装Python的图像处理库Pillow。Pillow是一个开源的图像处理库,可以方便地进行图片操作。安装完此库后,我们接下来就可以开始编写代码了。 通过Python的os库可以遍历指定目录下的所有图片,随后通过Pillow库中的Image.open()打开图片进行裁剪操作。具体裁剪操作通过使用Image.crop()方法实现。Image.crop()方法有四个参数(x1,y1,x2,y2),表示图像从(x1,y1)裁剪到(x2,y2)的部分。对于多张图片的批量操作,我们可以创建一个循环来依次处理每一张图片,将裁剪后的图片保存在指定目录下。 需要注意的是,进行批处理裁剪时,我们需要先确定好图片裁剪的大小和位置,如果所有图片的裁剪参数都不一样,则需要针对每张图片单独设置裁剪参数,不然可能会出现图片错位的问题。 总之,通过Python进行批量的图片裁剪是一个简单而高效的方式,不仅可以省去手动一个一个裁剪的麻烦,而且由于编程的灵活性,我们可以根据不同的需求灵活地进行调整。 ### 回答3: Python是一种高级编程语言,可以方便地完成图片批处理任务。图片批处理主要是指对大量图片进行自动化处理。其中,裁剪图片图片处理的一个基本操作。 Python提供了众多图片处理相关的库,如Pillow等,都有强大的图片处理能力,可以轻松实现图片裁剪功能。要对图片进行裁剪,首先需要确定裁剪区域。可以使用Pillow库提供的Crop方法来实现。 具体实现步骤如下: 1. 导入Pillow库 `from PIL import Image` 2. 打开图片 `img = Image.open('image.jpg')` 3. 定义裁剪区域 `area = (left, upper, right, lower)` 其中,left、upper表示裁剪区域左上角的坐标;right、lower表示裁剪区域右下角的坐标。 4. 裁剪图片 `crop_img = img.crop(area)` 5. 保存裁剪后的图片 `crop_img.save('crop_image.jpg')` 以上就是使用Python进行图片批处理裁剪的基本步骤。通过编写脚本,可以方便地对大量图片进行自动化处理,提高工作效率,并且保证处理结果的一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值