Skip to content

Commit e195500

Browse files
authored
Added dilation tests and type hints
1 parent 5c908c7 commit e195500

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

digital_image_processing/morphological_operations/dilation_operation.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,47 @@
22
from PIL import Image
33

44

5-
def rgb2gray(rgb):
5+
def rgb2gray(rgb: np.array) -> np.array:
66
"""
77
Return gray image from rgb image
8+
>>> rgb2gray(np.array([[[127, 255, 0]]]))
9+
array([[187.6453]])
10+
>>> rgb2gray(np.array([[[0, 0, 0]]]))
11+
array([[0.]])
12+
>>> rgb2gray(np.array([[[2, 4, 1]]]))
13+
array([[3.0598]])
14+
>>> rgb2gray(np.array([[[26, 255, 14], [ 5, 147, 20], [ 1, 200, 0]]]))
15+
array([[159.0524, 90.0635, 117.6989]])
816
"""
917
r, g, b = rgb[:, :, 0], rgb[:, :, 1], rgb[:, :, 2]
1018
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
1119
return gray
1220

1321

14-
def gray2binary(gray):
22+
def gray2binary(gray: np.array) -> np.array:
1523
"""
1624
Return binary image from gray image
25+
>>> gray2binary(np.array([[127, 255, 0]]))
26+
array([[False, True, False]])
27+
>>> gray2binary(np.array([[0]]))
28+
array([[False]])
29+
>>> gray2binary(np.array([[26.2409, 4.9315, 1.4729]]))
30+
array([[False, False, False]])
31+
>>> gray2binary(np.array([[26, 255, 14], [ 5, 147, 20], [ 1, 200, 0]]))
32+
array([[False, True, False],
33+
[False, True, False],
34+
[False, True, False]])
1735
"""
1836
return (127 < gray) & (gray <= 255)
1937

2038

21-
def dilation(image, kernel):
39+
def dilation(image: np.array, kernel: np.array) -> np.array:
2240
"""
2341
Return dilated image
42+
>>> dilation(np.array([[True, False, True]]), np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]]))
43+
array([[ True, True, True]])
44+
>>> dilation(np.array([[True, False, False]]), np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]]))
45+
array([[ True, True, False]])
2446
"""
2547
output = np.zeros_like(image)
2648
image_padded = np.zeros(

0 commit comments

Comments
 (0)