登录
首页大数据时代教你用OpenCV简单快速实现图片的批量裁剪
教你用OpenCV简单快速实现图片的批量裁剪
2020-07-27
收藏

小编最近在网上下载了一批素材图片需要批量裁剪,这可难住小编了,一张张来做的话,那可得弄到猴年马月了。这时有小伙伴给推荐了一款神器:OpenCV。据说小伙伴说,他们做图像处理,经常会需要大批量的修改图片尺寸来做训练样本时,用的就是OpenCV。好了,废话不多说,一起与小编来看如何用OpenCV来实现图片的批量裁剪吧。

一、让我们先来了解一下什么是OpenCV

1.OpenCV全称为:Open Source Computer Vision Library,是一个跨平台的计算机视觉库。由英特尔公司发起并参与开发的,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV能够用作开发实时的图像处理、计算机视觉以及模式识别程序。简单来说,OpenCV就是一个库,是一个SDK,一个开发包,解压后直接用就可以。

2.安装OpenCV

(1)OpenCV安装前需要依赖numpy,因此我们先需要安装numpy

在cmd命令行中输入

pip install numpy

然后再在cmd命令行中输入

pip3 install opencv-python

(2) 到OpenCV官网下载。

这里用的是windows,下载Win pack版本。

之后再进行解压安装。

配置环境变量,通过计算机——属性——高级系统设置——环境变量,在path添加自己的OpenCV安装文件,添加完成后点击确定即可。

二、OpenCV实现批量裁剪图片


import cv2
import os
def cutimage(dir,suffix):
 for root,dirs,files in os.walk(dir):
  for file in files:
   filepath = os.path.join(root, file)
   filesuffix = os.path.splitext(filepath)[1][1:]
   if filesuffix in suffix:  #遍历找到指定后缀的文件名["jpg",png]等
    image = cv2.imread(file) #opencv剪切图片  
    #cv2.imshow(file,image) 
    dim =(242,200)      #指定尺寸w*h
    resized =cv2.resize(image,dim,interpolation = cv2.INTER_AREA) #这里采用的插值法是INTER_LINEAR
    #cv2.imshow("resize:%s"%file,resized)
    cv2.imwrite("../cv/%s"%file,resized) #保存文件 
 cv2.waitKey(0)     #退出
 
suffix = ["jpg"]
dir = '.'
cutimage(dir,suffix)


其中一些值可以根据自己需要进行更改,比如保存路径或者保存名称之类的。

数据分析咨询请扫描二维码

客服在线
立即咨询