hvala kurcu zdej tuji stekam zakaj je prej dello k nei smelo

main
Gasper Spagnolo 2022-11-14 21:55:29 +01:00
parent 4c03725812
commit 11d0519132
2 changed files with 10 additions and 18 deletions

View File

@ -190,7 +190,7 @@ def two_b():
derivative magnitude). You only need to compute the comparison to actual pixels, derivative magnitude). You only need to compute the comparison to actual pixels,
interpolating to more accuracy is not required. interpolating to more accuracy is not required.
""" """
SIGMA = 0.2 SIGMA = 0.5
THETA = 0.16 THETA = 0.16
museum = uz_image.imread_gray('./images/museum.jpg', uz_image.ImageType.float64) museum = uz_image.imread_gray('./images/museum.jpg', uz_image.ImageType.float64)

View File

@ -596,27 +596,19 @@ def find_edges_nms(image: Union[npt.NDArray[np.float64], npt.NDArray[np.uint8]],
return (-1, -1), (1, 1) return (-1, -1), (1, 1)
raise ValueError(f"Angle {angle} is not in range") raise ValueError(f"Angle {angle} is not in range")
derivative_magnitude, derivative_angles = gradient_magnitude(image, sigma) derivative_magnitude, derivative_angles = gradient_magnitude(image, sigma)
reduced_magnitude = np.zeros_like(derivative_magnitude) #reduced_magnitude = np.zeros_like(derivative_magnitude)
nms_mask = np.zeros_like(derivative_magnitude) reduced_magnitude = derivative_magnitude.copy()
reduced_magnitude[(derivative_magnitude >= theta)] = 1 reduced_magnitude[(derivative_magnitude <= theta)] = 0
for y in range(reduced_magnitude.shape[0]): for y in range(1, reduced_magnitude.shape[0]-1):
for x in range(reduced_magnitude.shape[1]): for x in range(1, reduced_magnitude.shape[1]-1):
gp1, gp2 = get_gradient_orientation(derivative_angles[y, x]) gp1, gp2 = get_gradient_orientation(derivative_angles[y, x])
# Out of bounds checks if reduced_magnitude[y, x] < reduced_magnitude[y+gp1[0], x+gp1[1]] or reduced_magnitude[y, x] < reduced_magnitude[y+gp2[0], x+gp2[1]]:
if x + gp1[0] < 0 or x + gp2[0] < 0: reduced_magnitude[y, x] = 0
continue
elif y + gp1[1] < 0 or y + gp2[1] < 0:
continue
elif x + gp1[0] >= reduced_magnitude.shape[1] or x + gp2[0] >= reduced_magnitude.shape[1]:
continue
elif y + gp1[1] >= reduced_magnitude.shape[0] or y + gp2[1] >= reduced_magnitude.shape[0]:
continue
elif reduced_magnitude[y + gp1[1], x + gp1[0]] == 1 and reduced_magnitude[y + gp2[1], x + gp2[0]] == 1:
nms_mask[y, x] = 1
return nms_mask return reduced_magnitude