我有一个代码,它应该在matplotlib窗口中画一个框,然后打印那个图像的坐标,我也有这样的代码,当我单击“q”时,它会移到下一个图像,但是这不起作用。但是我可以点击窗口上的x按钮,它会移到下一个图像,但不会打印坐标
import os
import matplotlib.pyplot as plt
import cv2
from matplotlib.widgets import RectangleSelector
img = None
tl_list = []
br_list = []
object_list = []
image_folder = 'images'
savedir = 'annotations'
obj = 'thumbs up'
def line_select_callback(clk, rls):
global tl_list
global br_list
tl_list.append((int(clk.xdata), int(clk.ydata)))
br_list.append((int(rls.xdata), int(rls.ydata)))
def toggle_selector(event):
toggle_selector.RS.set_active(True)
def onkeypress(event):
global tl_list
global br_list
global object_list
global img
if event.key == 'q':
print(tl_list, br_list)
tl_list = []
br_list = []
img = None
plt.close()
if __name__ == '__main__':
for n, image_file in enumerate(os.scandir(image_folder)):
img = image_filewwwwwetgfdsx
fig, ax = plt.subplots(1)
image = cv2.imread(image_file.path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
ax.imshow(image)
toggle_selector.RS = RectangleSelector(
ax, line_select_callback,
drawtype='box', useblit =True,
button=[1], # left mouse click
minspanx=5, minspany=5, spancoords='pixels',
interactive=True
)
bbox = plt.connect('key_press_event', toggle_selector)
key = plt.connect('key_press_event', onkeypress)
plt.show()
对不起各位,我刚刚要更新Matplotlib,这段代码只适用于3.0,不适用于2.0。你知道吗
相关问题 更多 >
编程相关推荐