Отменить или повторить вариант создания обработки изображений opencv (Python) - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в обработке изображений. Я попробовал очень простую 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()
...