#opencv
#opencv
Вопрос:
Если две точки для рисования линии — (100,100) и (200,200), есть ли способ нарисовать только среднюю точку?
Комментарии:
1. вам нужно отметить среднюю точку?
2. Нарисуйте радиус = 1 окружности в 150 150 или нарисуйте линию от 149 149 до 150 150.
3.
C
илиPython
? Если вы выполните поиск «opencv set pixel C / python», вы получите множество ответов, предполагая, что вы имеете в виду, что просто хотите установить пиксель (150, 150).4. Я хочу найти кратчайшую возможную точку. Я использую python. На изображении у меня есть (352, 92) (-2.5121140e 06, 4.8845758e 02) У него есть две точки, подобные этой.
Ответ №1:
Если я правильно понял вашу проблему, вам нужна только средняя точка, поэтому этот фрагмент должен решать вашу проблему
import cv2
def midpoint(point1, point2):
# values need to be rounded to an integer to avoid an error when calling cv2.circle() later
midpoint_x = round((point2[0] point1[0])/2)
midpoint_y = round((point2[1] point1[1])/2)
midpoint = (midpoint_x, midpoint_y)
return midpoint
img = cv2.imread('image.jpg')
point1 = (352, 92)
point2 = (-2.5121140e 06, 4.8845758e 02)
point3 = midpoint(point1, point2)
# starting with radius 10 to make the point initially more visible
img = cv2.circle(img, point3, radius=10, color=(255, 255, 255), thickness=-1)
cv2.imshow("Midpoint position", img)
cv2.waitKey()
cv2.destroyWindow("Midpoint position")