Я новичок в обработке изображений. Я попробовал очень простую c программу для измерения расстояния между двумя точками изображения, используя события щелчка для анализа некоторых диаметров. Но иногда я получаю неправильные очки из-за пропущенного клика. Я хочу закодировать опцию отмены, чтобы исправить пропущенные клики. Буду признателен за ваше предложение. Мой код ниже:
import cv2
import numpy as np
img = cv2.imread('nanoTube.tif')
def click_event(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(img, (x,y), 2, (0, 0, 200), -1)
points.append((x, y))
if len(points) == 2:
cv2.line(img, points[-1], points[-2], (255,0,220), 5)
distance(points)
points.clear()
cv2.imshow('image', img)
def distance(points):
a = points[0]
b = points[1]
x1 = a[0]
y1 = a[1]
x2 = b[0]
y2 = b[1]
diameter = np.sqrt((x2-x1)**2 + (y2-y1)**2)
dis.append(diameter)
print(dis)
cv2.imshow('image', img)
cv2.setMouseCallback('image', click_event)
points = []
dis = []
cv2.imshow('image', img)
cv2.imshow("image", img)
cv2.waitKey()