-
-
Notifications
You must be signed in to change notification settings - Fork 56
Open
Description
Hi! Thank you for your project. I ran into a little problem with the data type in the function def generate_noise_clusters(self, image, n_clusters=(200, 200), n_samples=(300, 300), std_range=(5, 10))
.
This happened when I was using Scribbles.
The problem is that it expects an int-type std std = random.randint(std_range[0], std_range[1])
.
Version
augraphy==8.2.6
Traceback
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/base/augmentationpipeline.py", line 859, in __call__
return self.augment(image, return_dict=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/base/augmentationpipeline.py", line 213, in augment
data = self.augment_single_image(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/base/augmentationpipeline.py", line 419, in augment_single_image
self.apply_phase(data, layer="post", phase=self.post_phase)
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/base/augmentationpipeline.py", line 740, in apply_phase
result = augmentation(
^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/augmentations/scribbles.py", line 251, in __call__
image_output = ink_generator.generate_ink()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/utilities/inkgenerator.py", line 855, in generate_ink
image_output = self.generate_lines(ink_background)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/utilities/inkgenerator.py", line 525, in generate_lines
line_background = self.apply_ink_effect(line_image, line_background)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/utilities/inkgenerator.py", line 588, in apply_ink_effect
image_merged = self.apply_highlighter_effect(foreground_image, background_image)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/utilities/inkgenerator.py", line 350, in apply_highlighter_effect
image_noise_center = self.generate_noise_clusters(gray_image, n_clusters, n_samples, std_range)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/a1/myenv/lib/python3.12/site-packages/augraphy/utilities/inkgenerator.py", line 279, in generate_noise_clusters
std = random.randint(std_range[0], std_range[1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/random.py", line 336, in randint
return self.randrange(a, b+1)
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/random.py", line 301, in randrange
istart = _index(start)
^^^^^^^^^^^^^
TypeError: 'numpy.float64' object cannot be interpreted as an integer
The solution is to simply add a type conversion to the integer in apply_highlighter_effect()
.
std_range = (3 + np.ceil(kernel_size / 5), 7 + np.ceil(kernel_size / 5))
to
std_range = (3 + int(np.ceil(kernel_size / 5)), 7 + int(np.ceil(kernel_size / 5)))
Maybe it will be a useful addition.
Metadata
Metadata
Assignees
Labels
No labels