Skip to content

Instantly share code, notes, and snippets.

@nhomble
Created October 9, 2017 04:12
Show Gist options
  • Save nhomble/42df31228fe4c07370cd09a982d81c63 to your computer and use it in GitHub Desktop.
Save nhomble/42df31228fe4c07370cd09a982d81c63 to your computer and use it in GitHub Desktop.
interactively do quick edge detection via difference of gaussian
import cv2
def dog(img, k2=(7, 7), k1=(3, 3), denoise=False, denoise_k=3):
blur1 = cv2.GaussianBlur(img, k1, 1)
blur2 = cv2.GaussianBlur(img, k2, 1)
diff = blur1 - blur2
if denoise:
diff = cv2.medianBlur(diff, denoise_k)
return diff
img = cv2.imread("./tripod.png")
k2 = 3
k1 = 1
k_d = 3
d_flag = False
edge = True
while True:
k = cv2.waitKey(1)
if edge:
show = dog(img, k2=(k2, k2), k1=(k1, k1), denoise=d_flag, denoise_k=k_d)
else:
show = img
cv2.imshow("DoG".format(k2, k1, d_flag, k_d), show)
if k == ord('q'):
break
elif k == ord('w'):
k2 += 2
elif k == ord('s'):
k2 -= 2
k2 = max(k2, 3)
k2 = max(k2, k1 + 2)
elif k == ord('p'):
k1 += 2
k1 = min(k1, k2 - 2)
elif k == ord('l'):
k1 -= 2
k1 = max(k1, 1)
elif k == ord(' '):
d_flag = not d_flag
elif k == ord('t'):
k_d += 2
k_d = max(k_d, 3)
elif k == ord('g'):
k_d -= 2
k_d = max(k_d, 3)
elif k == ord('i'):
edge = not edge
print(k1, k2, k_d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment