Python 如何在图像上绘制一个矩形,以获得图像x、y轴上点的感兴趣区域?

Python 如何在图像上绘制一个矩形,以获得图像x、y轴上点的感兴趣区域?,python,opencv,drawimage,Python,Opencv,Drawimage,我试图创建一个查看器,在那里可以使用鼠标输入获取图像的感兴趣区域,并返回x、y轴上的点。我已经尝试过使用selectRoi方法,但我无法在我的图像查看器中使用它,在其他测试中,我可以使用此方法,但它会在另一个窗口中创建裁剪的图像,我希望它只在查看器中的图像中标记,并在某个变量中返回x、y轴的点。我是一名编程新手,有谁能对我如何在Pegar_area_Interest方法中做到这一点提出建议吗? 我想做一些类似的附加图像。 我会在下面留下我的代码 from tkinter import * fro

我试图创建一个查看器,在那里可以使用鼠标输入获取图像的感兴趣区域,并返回x、y轴上的点。我已经尝试过使用selectRoi方法,但我无法在我的图像查看器中使用它,在其他测试中,我可以使用此方法,但它会在另一个窗口中创建裁剪的图像,我希望它只在查看器中的图像中标记,并在某个变量中返回x、y轴的点。我是一名编程新手,有谁能对我如何在Pegar_area_Interest方法中做到这一点提出建议吗? 我想做一些类似的附加图像。 我会在下面留下我的代码

from tkinter import *
from PIL import ImageTk, Image
from os import listdir
from os.path import isfile, join
import cv2

root=Tk()

root.title('viewer das image')
# read images from the directory
root.iconbitmap('path of image')

# read all filenames from the directory
onlyfiles = [f for f in listdir('path of image') if isfile(join('path of image', f))]

# puts all images in the list
image_list=[]
for nome in onlyfiles:
    image_list.append(ImageTk.PhotoImage(Image.open('path of image'+nome)))

my_label=Label(image=image_list[1])
my_label.grid(row=0, column=0, columnspan=3)

def forward(image_number):
    global my_label
    global button_forward
    global button_back
    global button_numeroImagem
    global button_Pegar_area_interesse

    my_label.grid_forget()
    my_label = Label(image=image_list[image_number-1])
    button_forward =Button(root,text='>>', command=lambda : forward(image_number+1))
    button_back = Button(root,text='<<', command=lambda : back(image_number-1))
    button_numeroImagem = Button(root, text=str(image_number)+' de ' + str(len(image_list)), state=DISABLED)

    if image_number == int(len(image_list)):
        button_forward = Button(root, text='>>', state=DISABLED)

    my_label.grid(row=0, column=0, columnspan=3)
    button_back.grid(row=1, column=0)
    button_forward.grid(row=1, column=2)
    button_numeroImagem.grid(row=1, column=1)




def back(image_number):
    global my_label
    global button_forward
    global button_back
    global button_numeroImagem
    global button_Pegar_area_interesse

    my_label.grid_forget()
    my_label = Label(image=image_list[image_number - 1])
    button_forward = Button(root, text='>>', command=lambda: forward(image_number + 1))
    button_back = Button(root, text='<<', command=lambda: back(image_number - 1))
    button_numeroImagem = Button(root, text=str(image_number) + ' de ' + str(len(image_list)), state=DISABLED)

    if image_number == 1:
        button_back = Button(root, text='<<', state=DISABLED)

    my_label.grid(row=0, column=0, columnspan=3)
    button_back.grid(row=1, column=0)
    button_forward.grid(row=1, column=2)
    button_numeroImagem.grid(row=1, column=1)

def Pegar_area_interesse(image_number):
    pass

button_back =Button(root, text='<<', command=lambda: back(), state=DISABLED)
button_exit =Button(root, text='exit program', command=root.quit)
button_forward =Button(root, text='>>',command=lambda: forward(2))
button_numeroImagem =Button(root, text='1 de ' + str(len(image_list)), state=DISABLED)
button_Pegar_area_interesse=Button(root, text='Select ROI')


button_back.grid(row=1, column=0)
button_forward.grid(row=1, column=2)
button_numeroImagem.grid(row=1, column=1)
button_exit.grid(row=2, column=1)
button_Pegar_area_interesse.grid(row=3, column=0)



root.mainloop()
从tkinter导入*
从PIL导入ImageTk,图像
从操作系统导入listdir
从os.path导入isfile,加入
进口cv2
root=Tk()
root.title('viewer das image')
#从目录中读取图像
root.iconbitmap('图像的路径')
#从目录中读取所有文件名
onlyfiles=[f表示listdir中的f('图像路径'),如果是isfile(join('图像路径',f))]
#将所有图像放入列表中
图像_列表=[]
仅适用于nome文件:
image_list.append(ImageTk.PhotoImage(image.open('path of image'+nome)))
我的标签=标签(图像=图像列表[1])
my_label.grid(行=0,列=0,列span=3)
def转发(图像编号):
全球my_标签
全局按钮\u前进
全局按钮返回
全局按钮\u数字图像
全局按钮\u Pegar\u区域\u兴趣
我的标签。网格忘记()
我的标签=标签(图像=图像列表[图像编号-1])
按钮向前=按钮(根,文本='>>',命令=lambda:forward(图像编号+1))
按钮返回=按钮(根,文本='',状态=禁用)
my_label.grid(行=0,列=0,列span=3)
按钮返回网格(行=1,列=0)
按钮向前网格(行=1,列=2)
按钮\数字图像网格(行=1,列=1)
def back(图像编号):
全球my_标签
全局按钮\u前进
全局按钮返回
全局按钮\u数字图像
全局按钮\u Pegar\u区域\u兴趣
我的标签。网格忘记()
我的标签=标签(图像=图像列表[图像编号-1])
按钮向前=按钮(根,文本='>>',命令=lambda:forward(图像编号+1))
按钮返回=按钮(根,文本=)