好的,我希望能够记录给定图像中像素的坐标。该图像用于校准和确定不同距离的相机的镜头畸变和iFoV(视场)。
我正在尝试使用Python编写程序,该程序将允许我打开目录中的初始图像,并允许我查明以下区域的像素坐标;
左上,右上,中右,中右,中左,BOT左,BOT MID和BOT右
所以基本上,我需要打开图像,单击那8个点(将这些点记录在csv文件中),然后按一个键,例如“ SPACEBAR”或“ ESC”等将弹出目录中的下一个图像(新长度的工具)。能够重复许多图像。
示例校准工具-红点是所需的共同坐标:
答案 0 :(得分:0)
我写了一个模拟工具来解决您的目的。
filepath
中传递适当的路径作为图像。代码:
import cv2
import numpy as np
import glob
ix, iy = -1, -1
# mouse callback function
def draw_circle(event, x, y, flags, param):
global ix, iy, mode
if event == cv2.EVENT_LBUTTONDOWN:
ix, iy = x, y
elif event == cv2.EVENT_LBUTTONUP:
cv2.circle(img, (x, y), 5, (0, 0, 255), -1)
print(x, y)
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_circle)
filepath = r'C:\Users\Jackson\Desktop\*.png'
for file in glob.glob(filepath):
img = cv2.imread(file)
img2 = img.copy()
while(1):
cv2.imshow('image', img)
k = cv2.waitKey(1) & 0xFF
if k == 32: #--- Press spacebar to clear markings on current image ---
img = img2.copy()
elif k == ord('q'): #--- Press lowercase q to move to next image ---
break
cv2.destroyAllWindows()