diff --git a/tools.py b/tools.py
index 443b670b75f0e4dcd877547df1ffb80c3c4964d0..14ae2cbcc4bb8911d9b5156c25ab2fdae6cd3a45 100644
--- a/tools.py
+++ b/tools.py
@@ -113,16 +113,17 @@ class Main:
             release_semaphore_write(sem, num_sem=10)
 
     def _processing(self, image, dist_factor):
-        coord, max_spot_size = ion_positions(image)
+        img = image.copy()
+        coord, max_spot_size = ion_positions(img)
         if len(coord) > 0:
-            roundness = ion_roundness(image, coord[0][:2])
-        new_img = compensate_gradient(image, coord)
-        max_int, num_pix = max_ion_intensity(new_img, coord)
-        coord = detect_dim_ions(new_img, coord, max_int)
+            roundness = ion_roundness(img, coord[0][:2])
+            img = compensate_gradient(img, coord)
+        max_int, num_pix = max_ion_intensity(img, coord)
+        coord = detect_dim_ions(img, coord, max_int)
         linearity = ion_linearity(coord)
 
         if len(coord) > 1 and dist_factor is not None:
-            coord = dark_ions(image, coord, dist_factor)
+            coord = dark_ions(img, coord, dist_factor)
 
         _, old_idx = self.memory.get_value()
         self.memory.save_value(coord)