MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / detect

Method detect

computer_vision/harris_corner.py:26–65  ·  view source on GitHub ↗

Returns the image with corners identified img_path : path of the image output : list of the corner positions, image

(self, img_path: str)

Source from the content-addressed store, hash-verified

24 return str(self.k)
25
26 def detect(self, img_path: str) -> tuple[cv2.Mat, list[list[int]]]:
27 """
28 Returns the image with corners identified
29 img_path : path of the image
30 output : list of the corner positions, image
31 """
32
33 img = cv2.imread(img_path, 0)
34 h, w = img.shape
35 corner_list: list[list[int]] = []
36 color_img = img.copy()
37 color_img = cv2.cvtColor(color_img, cv2.COLOR_GRAY2RGB)
38 dy, dx = np.gradient(img)
39 ixx = dx**2
40 iyy = dy**2
41 ixy = dx * dy
42 k = 0.04
43 offset = self.window_size // 2
44 for y in range(offset, h - offset):
45 for x in range(offset, w - offset):
46 wxx = ixx[
47 y - offset : y + offset + 1, x - offset : x + offset + 1
48 ].sum()
49 wyy = iyy[
50 y - offset : y + offset + 1, x - offset : x + offset + 1
51 ].sum()
52 wxy = ixy[
53 y - offset : y + offset + 1, x - offset : x + offset + 1
54 ].sum()
55
56 det = (wxx * wyy) - (wxy**2)
57 trace = wxx + wyy
58 r = det - k * (trace**2)
59 # Can change the value
60 if r > 0.5:
61 corner_list.append([x, y, r])
62 color_img.itemset((y, x, 0), 0)
63 color_img.itemset((y, x, 1), 0)
64 color_img.itemset((y, x, 2), 255)
65 return color_img, corner_list
66
67
68if __name__ == "__main__":

Callers 1

harris_corner.pyFile · 0.80

Calls 3

copyMethod · 0.80
gradientMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected