增加一个小工具
This commit is contained in:
parent
a0761f4aca
commit
b387b61b12
45
tools/get_pixel_xy.py
Normal file
45
tools/get_pixel_xy.py
Normal file
@ -0,0 +1,45 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
def resize_image(image, max_size=1200):
|
||||
# 获取原始尺寸
|
||||
height, width = image.shape[:2]
|
||||
# 计算缩放比例
|
||||
scale = min(max_size/width, max_size/height)
|
||||
if scale < 1:
|
||||
# 只有当图像过大时才进行缩放
|
||||
new_width = int(width * scale)
|
||||
new_height = int(height * scale)
|
||||
resized = cv2.resize(image, (new_width, new_height))
|
||||
return resized, scale
|
||||
return image, 1.0
|
||||
|
||||
def mouse_callback(event, x, y, flags, param):
|
||||
if event == cv2.EVENT_LBUTTONDOWN:
|
||||
# 计算原始图像上的坐标
|
||||
original_x = int(x / scale)
|
||||
original_y = int(y / scale)
|
||||
print(f'原始图像坐标 (x, y): ({original_x}, {original_y})')
|
||||
# 在缩放后的图像上标记点击位置
|
||||
cv2.circle(displayed_img, (x, y), 3, (0, 255, 0), -1)
|
||||
cv2.imshow('image', displayed_img)
|
||||
|
||||
# 读取图像
|
||||
img = cv2.imread(r"E:\datasets\UAV\134\project\images\20240312_093841_W_W.jpg")
|
||||
if img is None:
|
||||
print('错误:无法读取图像')
|
||||
exit()
|
||||
|
||||
# 缩放图像
|
||||
displayed_img, scale = resize_image(img)
|
||||
|
||||
# 创建窗口并设置鼠标回调函数
|
||||
cv2.imshow('image', displayed_img)
|
||||
cv2.setMouseCallback('image', mouse_callback)
|
||||
|
||||
# 等待按键,按 'q' 退出
|
||||
while True:
|
||||
if cv2.waitKey(1) & 0xFF == ord('q'):
|
||||
break
|
||||
|
||||
cv2.destroyAllWindows()
|
Loading…
Reference in New Issue
Block a user