有时候需要对于数据集进行预处理,通过标注获取坐标信息,再进行后续的操作。使用python能够快速读取图片,并能够通过人工标注,记录一下每个点的横竖坐标,如下记录学习笔记。
参考链接:https://lcqbit11.blog.youkuaiyun.com/article/details/69951249
参考链接:https://blog.youkuaiyun.com/qq_26697045/article/details/101461525
参考链接:https://www.jb51.net/article/157968.htm
源码
整个目录的结构如下:
根目录
——images:存放图片
——outputs:存放标注坐标信息
图片存放位置:E:\Python\biaozhu\images\001(图片仅仅是用来测试的,应存放数据集)
from __future__ import division
import tkinter as tk
from tkinter import Frame
from tkinter import BOTH
from tkinter import *
import tkinter.messagebox
from PIL import Image, ImageTk
import os
import glob
import random
w0 = 1; #图片原始宽度
h0 = 1; #图片原始高度
# colors for the bboxes
COLORS = ['red', 'blue', 'yellow', 'pink', 'cyan', 'green', 'black']
# image sizes for the examples
SIZE = 960, 600
#指定缩放后的图像大小
DEST_SIZE = 960, 600
class LabelTool():
def __init__(self, master):
# set up the main frame
self.parent = master
self.parent.title("图像标注")
self.frame = Frame(self.parent)
self.frame.pack(fill=BOTH, expand=1)
self.parent.resizable(width = TRUE, height = TRUE)
# initialize global state
self.imageDir = ''
self.imageList= []
self.egDir = ''
self.egList = []
self.outDir = ''
self.cur = 0
self.total = 0
self.category = 0
self.imagename = ''
self.labelfilename = ''
self.tkimg = None
# initialize mouse state
self.STATE = {}
self.STATE['click'] = 0
self.STATE['x'], self.STATE['y'] = 0, 0
# reference to bbox
self.bboxIdList = []
self.bboxId = None
self.bboxList = []
self.hl = None
self.vl = None
# ----------------- GUI stuff ---------------------
# dir entry & load
self.label = Label(self.frame, text = "Image Dir:")
self.label.grid(row = 0, column = 0, sticky = E)
self.entry = Entry(self.frame)
self.entry.gri