【Python编程】图片裁剪

导入必要的模块

import os
import cv2

定义要裁剪的图片的路径变量

DATADIR = r"E:\系统默认\桌面\pytorch-CycleGAN-and-pix2pix123\datasets\RGB2ToF\\"
data_k = "trainA"
path = os.path.join(DATADIR, data_k)

os.listdir()函数:返回指定的文件夹包含的文件或文件夹的名字的列表。

img_list = os.listdir(path)     

循环遍历文件夹中的文件

for i in img_list:
    img1 = cv2.imread(path + '/' + i )  # 读取图片, cv2.IMREAD_GRAYSCALE是以灰度属性读入 
    cv2.imshow("Original Image",img1 ) # 展示图片
    
    start_row,start_col=150,150     # start_row和start_col是开始坐标 
    end_row,end_col=1150,1150       # end_row和end_col是结束坐标 
    cropped=img1[start_row:end_row,start_col:end_col] # 裁切
    cv2.imshow("Cropped_Image",cropped) # 展示

    '''生成图片存储的目标路径'''
    img_name = str(i)          # 以原文件名命名保存
    save_path = path + '3/'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    save_img = save_path + img_name
    cv2.imwrite(save_img, cropped)
    cv2.waitKey(1)
    cv2.destroyAllWindows()

将RGB属性的图片转换为HSV属性

data_k1 = "trainA3"
path1 = os.path.join(DATADIR, data_k1)
img_list1 = os.listdir(path1)     
for i in img_list1:
    img1 = cv2.imread(path1 + '/' + i)
    cv2.imshow('img0',img1)
    img2 = cv2.cvtColor(img1,cv2.COLOR_BGR2HSV)
    cv2.imshow('img2_2',img2)
    img_name1 = str(i)
    save_path = path1 + '3_3/'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    save_img1 = save_path + img_name1
    cv2.imwrite(save_img1, img2)
    cv2.waitKey(1)
    cv2.destroyAllWindows()

完整代码

import cv2
import random
import numpy as np
import os

DATADIR = r"E:\系统默认\桌面\pytorch-CycleGAN-and-pix2pix123\datasets\RGB2ToF\\"
data_k = "trainA"
path = os.path.join(DATADIR, data_k)

img_list = os.listdir(path)     

for i in img_list:
    img1 = cv2.imread(path + '/' + i )  # , cv2.IMREAD_GRAYSCALE
    cv2.imshow("Original Image",img1 )
    
    start_row,start_col=150,150     # start_row和start_col是开始坐标 
    end_row,end_col=1150,1150       # end_row和end_col是结束坐标 
    cropped=img1[start_row:end_row,start_col:end_col]
    cv2.imshow("Cropped_Image",cropped)

    '''生成图片存储的目标路径'''
    img_name = str(i)
    save_path = path + '3/'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    save_img = save_path + img_name
    cv2.imwrite(save_img, cropped)
    cv2.waitKey(1)
    cv2.destroyAllWindows()

# 将rgb属性的图片转换为HSV
data_k1 = "trainA3"
path1 = os.path.join(DATADIR, data_k1)
img_list1 = os.listdir(path1)     
for i in img_list1:
    img1 = cv2.imread(path1 + '/' + i)
    cv2.imshow('img0',img1)
    img2 = cv2.cvtColor(img1,cv2.COLOR_BGR2HSV)
    cv2.imshow('img2_2',img2)
    img_name1 = str(i)
    save_path = path1 + '3_3/'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    save_img1 = save_path + img_name1
    cv2.imwrite(save_img1, img2)
    cv2.waitKey(1)
    cv2.destroyAllWindows()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

lingchen1906

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值