Skip to content

Commit 51b6cc6

Browse files
committed
Added image support for DupliPy
1 parent 78d722c commit 51b6cc6

3 files changed

Lines changed: 65 additions & 4 deletions

File tree

readme.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
# DupliPy 0.1.1
1+
# DupliPy 0.1.7
22

33
An open source Python library for text formatting, augmentation, and similarity calculation tasks in NLP.
44

5+
## Changes to DupliPy 0.1.7
6+
7+
DupliPy now offers support for image augmentation, with functions to rotate, resize and crop images. These are available through:
8+
```python
9+
from duplipy.replication import flip_horizontal, flip_vertical, rotate, random_rotation, resize, crop, random_crop, perform_image_augmentation
10+
```
11+
512
## Installation
613

714
You can install DupliPy using pip:

setup.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
setup(
44
name='duplipy',
5-
version='0.1.6',
5+
version='0.1.7',
66
author='Infinitode Pty Ltd',
77
author_email='infinitode.ltd@gmail.com',
8-
description='A package for formatting and text replication.',
9-
long_description='DupliPy is a quick and easy-to-use package that can handle text formatting and data augmentation tasks for NLP in Python.',
8+
description='A package for formatting and text replication, with added support for image augmentation.',
9+
long_description='DupliPy is a quick and easy-to-use package that can handle text formatting and data augmentation tasks for NLP in Python, with added support for image augmentation.',
1010
long_description_content_type='text/markdown',
1111
url='https://github.com/infinitode/duplipy',
1212
packages=find_packages(),
@@ -16,6 +16,7 @@
1616
'langcodes',
1717
'joblib',
1818
'tqdm',
19+
'pillow',
1920
],
2021
classifiers=[
2122
'Development Status :: 3 - Alpha',

test_image_augmentation.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import unittest
2+
import os
3+
from PIL import Image
4+
from duplipy.replication import flip_horizontal, flip_vertical, rotate, random_rotation, resize, crop, random_crop
5+
6+
class TestImageAugmentation(unittest.TestCase):
7+
8+
def setUp(self):
9+
self.test_image_path = "./test_image.jpg"
10+
self.test_image = Image.new("RGB", (500, 500), color="red")
11+
self.test_image.save(self.test_image_path)
12+
13+
def tearDown(self):
14+
os.remove(self.test_image_path)
15+
16+
def test_flip_horizontal(self):
17+
flipped_image = flip_horizontal(self.test_image)
18+
self.assertTrue(isinstance(flipped_image, Image.Image))
19+
self.assertEqual(flipped_image.size, self.test_image.size)
20+
21+
def test_flip_vertical(self):
22+
flipped_image = flip_vertical(self.test_image)
23+
self.assertTrue(isinstance(flipped_image, Image.Image))
24+
self.assertEqual(flipped_image.size, self.test_image.size)
25+
26+
def test_rotate(self):
27+
rotated_image = rotate(self.test_image, 45)
28+
self.assertTrue(isinstance(rotated_image, Image.Image))
29+
self.assertEqual(rotated_image.size, self.test_image.size)
30+
31+
def test_random_rotation(self):
32+
random_rotated_image = random_rotation(self.test_image, max_angle=30)
33+
self.assertTrue(isinstance(random_rotated_image, Image.Image))
34+
self.assertEqual(random_rotated_image.size, self.test_image.size)
35+
36+
def test_resize(self):
37+
resized_image = resize(self.test_image, (50, 50))
38+
self.assertTrue(isinstance(resized_image, Image.Image))
39+
self.assertEqual(resized_image.size, (50, 50))
40+
41+
def test_crop(self):
42+
cropped_image = crop(self.test_image, (25, 25, 75, 75))
43+
self.assertTrue(isinstance(cropped_image, Image.Image))
44+
self.assertEqual(cropped_image.size, (50, 50))
45+
46+
def test_random_crop(self):
47+
random_cropped_image = random_crop(self.test_image, (50, 50))
48+
self.assertTrue(isinstance(random_cropped_image, Image.Image))
49+
self.assertEqual(random_cropped_image.size, (50, 50))
50+
51+
52+
if __name__ == "__main__":
53+
unittest.main()

0 commit comments

Comments
 (0)