I am trying to send coordinate of an image for point addition to another function but in the point_addition function, its unable to unpack the coordinates of point as x1 and y1

I am trying to send coordinate of an image for point addition to another function but in the point_addition function, its unable to unpack the coordinates of point as x1 and y1.
here is the code:

def point_addition(p1, p2, P):
x1, y1 = p1
x2, y2 = p2

# Replace with the actual equation of the HEC curve
h = lambda x: 0  # Replace with the actual polynomial h(x)
F = lambda x: (x**5 + 1184*x**3 + 1846*x**2 + 956*x + 560) % P

lam = (y2 - y1) / (x2 - x1)
x3 = (lam**2 - x1 - x2) % P
y3 = (lam * (x1 - x3) - y1) % P

return (x3, y3)

def encrypt_image(image, P):
# Phase mask generation and masking process
phase_mask_1 = np.random.uniform(np.pi, 2*np.pi, size=image.shape[:-1] + (1,))
masked_image = image * np.exp(1j * phase_mask_1)

# Phase Truncated Fourier Transformation (PTFT)
ptft_image = np.abs(np.fft.fftshift(np.fft.fft2(masked_image, axes=(0, 1))))

# Scrambling using hyper elliptic curve (HEC)
scrambled_image = ptft_image.copy()

for i in range(image.shape[0]):
    for j in range(image.shape[1]):
        point_1 = scrambled_image[i, j]
        point_2 = scrambled_image[(i + 1) % image.shape[0], (j + 1) % image.shape[1]]
        image_array = np.array([point_1, point_2], dtype = np.float64)
        scrambled_image[i, j] = point_addition(image_array[0], image_array[1], P)

error:
In[1], line 73
70 grayscale_image = np.mean(original_image, axis=-1, dtype=np.uint8)
72 # Encrypt the grayscale image using hyperelliptic curve
—> 73 encrypted_gray_image = encrypt_image(grayscale_image, P)
75 # Decrypt the grayscale image using hyperelliptic curve
76 decrypted_gray_image = decrypt_image(encrypted_gray_image, P)

Cell In[1], line 37, in encrypt_image(image, P)
35 point_2 = scrambled_image[(i + 1) % image.shape[0], (j + 1) % image.shape[1]]
36 image_array = np.array([point_1, point_2], dtype = np.float64)
—> 37 scrambled_image[i, j] = point_addition(image_array[0], image_array[1], P)
39 # Masking and transformation on scrambled image
40 phase_mask_2 = np.random.uniform(np.pi, 2*np.pi, size=image.shape[:-1] + (1,))

Cell In[1], line 7, in point_addition(p1, p2, P)
6 def point_addition(p1, p2, P):
—-> 7 x1, y1 = p1
8 x2, y2 = p2
10 # Replace with the actual equation of the HEC curve

TypeError: cannot unpack non-iterable numpy.float64 object

New contributor

Aishadiadvi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.