简单的图像增强库关注随机几何裁剪。

imgcrop的Python项目详细描述


imgcrop

简单的图像增强库关注随机几何裁剪。 与基于管道的扩展库不同,该库可以同时高效地执行裁剪和几何变换。 由于不提供添加高斯噪声、模糊和对比度调整等图像处理功能, 请使用其他伟大的库,如imgaug[1]、Augmentor[2]和albumentations[3] 以进一步转换此库剪切的图像。

功能

  • 简单的API,易于使用
  • 高效;裁剪和所有几何变换同时执行(通过单个透视变换)
  • 确保裁剪图像中的所有像素都取自原始图像内部(如果不使用边距)

安装

pip install imgcrop

原料药

imgcrop.get_croper

get_cropper(patch_size=128,scale=(1.0,1.0),rotate=(0,0),distort=0.0,flip=0.0,margin=0)

参数

  • 补丁大小int,默认128
    • 输出面片大小(像素)
  • scalefloat元组,默认值(1.0,1.0)
    • 采样比例范围
  • rotateint元组,默认值(0,0)
    • 采样旋转范围(度)
  • 扭曲float,默认值为0.0
    • 透视变换中的失真强度(与输出图像比例之比)
  • flipfloat,默认值0.0
    • 水平翻转概率
  • marginint,默认值0
    • 裁剪原始图像时的边距

返回

  • 随机裁剪:函数

随机作物

random_crop(img,points=None)->cropped_img[,output_points],src_points,m

参数

  • imgnumpy数组(单个图像)或numpy数组列表(多个图像)
    • 输入要用相同几何变换裁剪的图像
  • pointsnumpy数组,具有形状(point num,2),默认为none
    • 要用与输入图像相同的变换矩阵变换的输入点

返回

  • cripped\u imgnumpy数组或numpy数组列表)
    • 剪切输出图像
  • 输出点带形状的numpy数组(point num,2)
    • 输入点给定时的输出点
  • src_点numpy数组
    • 定义输入图像中裁剪区域的点
  • mnumpy数组
    • 从输入图像到输出图像的3x3透视变换矩阵

示例

请运行或参考the example script以查看此库的工作原理:

python example/example.py

您可以通过参数轻松尝试不同的参数:

optional arguments:
  -h, --help            show this help message and exit
  --patch_size PATCH_SIZE
                        output patch image size (default: 256)
  --scale SCALE SCALE   scale range in sampling (default: [0.8, 1.2])
  --rotate ROTATE ROTATE
                        rotation range in sampling (default: [-60, 60])
  --distort DISTORT     distortion strength for perspective transformation
                        (default: 0.2)
  --flip FLIP           horizontal flip probability (default: 0.5)
  --margin MARGIN       margin around original image (default: 0)
parameterscropping results (input, cropped, mask, keypoints)
scaling
rotation + scaling
distortion + scaling
flip + rotation
margin + scaling
all

算法

原始图像中的面片区域由四个点组成。 这些点根据变换参数进行随机变换。 然后利用这些点计算从输入图像到输出图像的变换矩阵。 最后,应用透视变换进行裁剪。

参考文献

  1. 仪表,https://github.com/aleju/imgaug
  2. 增广器,https://github.com/mdbloice/Augmentor
  3. 相册,https://github.com/albu/albumentations

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish