批量裁剪(crop)&重置图像分辨率(resize)【Python】==》skimage



from skimage import io,transform
import numpy as np



#from resizeimage import resizeimage

def imgfunc(f):
     rgb=io.imread(f)    #依次读取rgb图片
     ROI=rgb[357:2375,150:2150] #根据自己的剪裁要求设置
     ##ROI=rgb[x1:x2,y1,y2], (x1,y1)为左上角坐标,(x2,y2)为右上角坐标
#     gray=color.rgb2gray(rgb)   #将rgb图片转换成灰度图 根据需要,可以自己修改
     dst=transform.resize(ROI,(1024,1024))  #将灰度图片大小转换为1024*1024,根据自己需要修改
#     cover = resizeimage.resize_cover(rgb, [200, 200])
     return dst
    
data_dir = "C:/Users/Desktop/picDir"
str = data_dir + '/*.jpg'
coll = io.ImageCollection(str,load_func=imgfunc)#str是图片所在路径,load_func后面可以调用你对图片的处理,也可以为空

for i in range(len(coll)):
    io.imshow(coll[i])
    io.imsave('C:/Users/Desktop/pic/'+np.str(i)+'.jpg',coll[i])  #循环保存图片0.jpg开始

之前用C++整的批量剪切,结果过了两天不知道怎么又少了啥dllo(一︿一+)o

放弃了,找了一下,用Python整一个。记录下,省得到时候忘了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,我们可以使用PIL(Python Imaging Library)或OpenCV库来批量中心裁剪图像。 首先,我们需要安装相关库。对于PIL,可以使用以下命令来安装: ``` pip install Pillow ``` 对于OpenCV,可以使用以下命令进行安装: ``` pip install opencv-python ``` 接下来,我们需要创建一个函数来进行图像的中心裁剪。以下是一个示例函数: ```python from PIL import Image def center_crop_image(image, new_width, new_height): width, height = image.size left = (width - new_width) // 2 top = (height - new_height) // 2 right = (width + new_width) // 2 bottom = (height + new_height) // 2 cropped_image = image.crop((left, top, right, bottom)) return cropped_image ``` 然后,我们可以编写一个批量中心裁剪图像的函数。以下是一个示例函数: ```python import os def batch_center_crop_images(input_dir, output_dir, new_width, new_height): if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): if filename.endswith(".jpg") or filename.endswith(".png"): image_path = os.path.join(input_dir, filename) image = Image.open(image_path) cropped_image = center_crop_image(image, new_width, new_height) output_path = os.path.join(output_dir, filename) cropped_image.save(output_path) ``` 在上述函数中,我们首先检查输出目录是否存在,如果不存在则创建。然后,我们遍历输入目录中的所有图像文件,并使用`center_crop_image`函数对每个图像进行中心裁剪。最后,我们将裁剪后的图像保存到输出目录中。 最后,我们调用批量中心裁剪图像的函数,并传入输入目录、输出目录以及所需的裁剪尺寸。以下是一个示例调用: ```python input_directory = "input" output_directory = "output" new_width = 200 new_height = 200 batch_center_crop_images(input_directory, output_directory, new_width, new_height) ``` 上述示例将从名为"input"的文件夹中读取所有图像文件,并将裁剪后的图像保存到名为"output"的文件夹中。裁剪尺寸为200x200。 希望以上解答能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值