forked from TheAlgorithms/Python
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_digital_image_processing.py
More file actions
Latest commit
125 lines (92 loc) · 3.79 KB
/
Copy pathtest_digital_image_processing.py
File metadata and controls
125 lines (92 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
"""
PyTest's for Digital Image Processing
"""
importnumpyasnp
fromcv2importCOLOR_BGR2GRAY, cvtColor, imread
fromnumpyimportarray, uint8
fromPILimportImage
fromdigital_image_processingimportchange_contrastascc
fromdigital_image_processingimportconvert_to_negativeascn
fromdigital_image_processingimportsepiaassp
fromdigital_image_processing.ditheringimportburkesasbs
fromdigital_image_processing.edge_detectionimportcannyascanny
fromdigital_image_processing.filtersimportconvolveasconv
fromdigital_image_processing.filtersimportgaussian_filterasgg
fromdigital_image_processing.filtersimportlocal_binary_patternaslbp
fromdigital_image_processing.filtersimportmedian_filterasmed
fromdigital_image_processing.filtersimportsobel_filterassob
fromdigital_image_processing.resizeimportresizeasrs
img=imread(r"digital_image_processing/image_data/lena_small.jpg")
gray=cvtColor(img, COLOR_BGR2GRAY)
# Test: convert_to_negative()
deftest_convert_to_negative():
negative_img=cn.convert_to_negative(img)
# assert negative_img array for at least one True
assertnegative_img.any()
# Test: change_contrast()
deftest_change_contrast():
withImage.open("digital_image_processing/image_data/lena_small.jpg") asimg:
# Work around assertion for response
assertstr(cc.change_contrast(img, 110)).startswith(
"<PIL.Image.Image image mode=RGB size=100x100 at"
)
# canny.gen_gaussian_kernel()
deftest_gen_gaussian_kernel():
resp=canny.gen_gaussian_kernel(9, sigma=1.4)
# Assert ambiguous array
assertresp.all()
# canny.py
deftest_canny():
canny_img=imread("digital_image_processing/image_data/lena_small.jpg", 0)
# assert ambiguous array for all == True
assertcanny_img.all()
canny_array=canny.canny(canny_img)
# assert canny array for at least one True
assertcanny_array.any()
# filters/gaussian_filter.py
deftest_gen_gaussian_kernel_filter():
assertgg.gaussian_filter(gray, 5, sigma=0.9).all()
deftest_convolve_filter():
# laplace diagonals
laplace=array([[0.25, 0.5, 0.25], [0.5, -3, 0.5], [0.25, 0.5, 0.25]])
res=conv.img_convolve(gray, laplace).astype(uint8)
assertres.any()
deftest_median_filter():
assertmed.median_filter(gray, 3).any()
deftest_sobel_filter():
grad, theta=sob.sobel_filter(gray)
assertgrad.any() andtheta.any()
deftest_sepia():
sepia=sp.make_sepia(img, 20)
assertsepia.all()
deftest_burkes(file_path: str="digital_image_processing/image_data/lena_small.jpg"):
burkes=bs.Burkes(imread(file_path, 1), 120)
burkes.process()
assertburkes.output_img.any()
deftest_nearest_neighbour(
file_path: str="digital_image_processing/image_data/lena_small.jpg",
):
nn=rs.NearestNeighbour(imread(file_path, 1), 400, 200)
nn.process()
assertnn.output.any()
deftest_local_binary_pattern():
file_path: str="digital_image_processing/image_data/lena.jpg"
# Reading the image and converting it to grayscale.
image=imread(file_path, 0)
# Test for get_neighbors_pixel function() return not None
x_coordinate=0
y_coordinate=0
center=image[x_coordinate][y_coordinate]
neighbors_pixels=lbp.get_neighbors_pixel(
image, x_coordinate, y_coordinate, center
)
assertneighbors_pixelsisnotNone
# Test for local_binary_pattern function()
# Create a numpy array as the same height and width of read image
lbp_image=np.zeros((image.shape[0], image.shape[1]))
# Iterating through the image and calculating the local binary pattern value
# for each pixel.
foriinrange(0, image.shape[0]):
forjinrange(0, image.shape[1]):
lbp_image[i][j] =lbp.local_binary_value(image, i, j)
assertlbp_image.any()