微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在图像上绘制矩形以得到感兴趣的区域以及在图像的x,y轴上的点?

如何解决如何在图像上绘制矩形以得到感兴趣的区域以及在图像的x,y轴上的点?

我正在尝试创建一个查看器,在其中可以使用鼠标输入获取图像的感兴趣区域并返回x,y轴上的点。我已经尝试过使用selectRoi方法,但是我无法在图像查看器中使用它,在其他测试中我可以使用此方法,但是它在另一个窗口中创建了裁剪的图像,我希望将其标记为在查看器中的图像中,并以一些变量返回x,y轴的点。我是编程新手,有人对我如何在Pegar_area_interesse方法中执行此操作有任何建议吗? 我想做一些类似于附件的图片。 我将代码留在下面。

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,state=disABLED)

    my_label.grid(row=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,command=lambda: forward(image_number + 1))
    button_back = Button(root,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,column=1)

def Pegar_area_interesse(image_number):
    pass

button_back =Button(root,command=lambda: back(),state=disABLED)
button_exit =Button(root,text='exit program',command=root.quit)
button_forward =Button(root,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()

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。