用Python写一个图片标注工具
程序补充库
# tkinter
$ sudo apt intall python-tk
# PIL (Python Image Library)
$ sudo apt-get install python-imaging
# 上面的命令如果不行的话
$ sudo apt-get install python-pil
# 需要安装python-imaging-tk
$ sudo apt install python-imaging-tk
过程很重要
我们要实现一个点击输入框就弹出文件夹选择的界面,然后点击确定就把取到的文件路径显示在文本框上面;
点击输入框的方法没有找到,为方便起见我们写了一个按钮专门用来调起系统文件夹;
import tkFileDialog# 调取系统文件选择框
dirPath_ = tkFileDialog.askdirectory()# 如果是选取文件,则应该是
filePath_ = tkFileDialog.askopenfilename(title=u'choose file', initialdir=(os.path.expanduser("默认打开路径")))
# 文本框清除并重新填写文字
entry.delete(0, END)
entry.insert(END, "要显示的内容")
接下来我们要对选择的路径下的图片进行操作,理论上这里应该考虑多种图片格式以增加程序健壮性,但是这里我们不作扩展,这就涉及到了一种编程的思想,“增量式编程————罗马不是一天建成的”(一本正经的胡说八道)。
虽然我们这里不做其他图片格式的考虑,但是我们需要给出提示,所以我们要进行某种警告来告诉我们的小白使用者,“你错了!”;
import tkMessageBox
# 非常简单,就一句话
tkMessageBox.showerror("Error!", message='究竟做错了什么')
路径的问题解决之后,我们就要加载图片了,这部分使用了github上的一部分代码,稍候我们慢慢讲解;
from Tkinter import *
from PIL import Image, ImageTk
# load image
imagepath = image_path
pil_image = Image.open(imagepath)# get the size of the image
#获取图像的原始大小
global w0,h0
w0, h0 = pil_image.size#缩放到指定大小
pil_image = pil_image.resize((DEST_SIZE[0], DEST_SIZE[1]), Image.ANTIALIAS)
self.tkimg = ImageTk.PhotoImage(pil_image)self.mainPanel = Canvas(self.frame, cursor='tcross')
self.mainPanel.config(width = max(self.tkimg.width(), 400), height = max(self.tkimg.height(), 400))
self.mainPanel.create_image(0, 0, image = self.tkimg, anchor=NW)
到这里,我们的图片已经加载成功,下面我们要做的是标定,就是框出我们要标识的真实物品;
这里顺便说一下我们接下来的产品需求,我们的图片是一组照片,照片内容是一个物体,我们在第一张照片上标定要tracking的物品,既而使用其他工具把接下来的其他图片的该物品全部标定出来;
拉下来我们要做的是用框标定第一张图片内容,并将所标定的数据记录下来;
self.mainPanel.bind("<Button-1>", self.mouseClick)
def mouseClick(self, event, save=True):print event.x, event.y
数据标计已完成,然后我们就到了本文最重要的部分,使用深度学习网络框架对图片进行tracking,这里我们选用的是py-MDNet,有关于该框架的论文可以看一下 这里,
网络标定请看下节;
py-MDNet环境
Python2.7下安装matplotlib
sudo apt-get build-dep python-matplotlib --fix-missing
git clone git://github.com/matplotlib/matplotlib.git
cd matplotlib
python -mpip install
# 说一下这里的-mpip
pip install matplotlib==2.1.2 # (3.0.2)
我们在服务器上使用scp命令进行文件下载时,使用ipv6地址时需要注意ip位置需要转义;
scp username@\[ipv6 host\]:/filepath localpath
py-MDNet过程
这部分内容略过,本篇主要讲UI部分内容;说一下该网络主要做了一个图像的tracking工作,具体请见py-MDNet;
图片标识还没完
这篇就先写到这吧,持续时间有点久,接下来内容后续另写一篇进行补充。
用Python写一个图片标注工具相关推荐
- 用Python写一个纪念日计算工具
用python写一个纪念日计算工具 前言 主要内容 日期计算函数 GUI布局 用pyinstaller打包生成.exe文件 打包后的.exe文件预览 运行结果 最后提前祝马英俊生日快乐吧~ 前言 纪念 ...
- 用python写一个动态壁纸工具
screenpv.py: use pyqt5 + opencv to open a video or camera 首先用pyqt5+opencv写一个全屏播放视频的工具 import sys imp ...
- Python的一个图片识别工具-PyTesseract(Win10)
PyTesseract是Python的一个第三方库,可以识别图片中文字. 前提 已经安装了Python.我安装的Python版本是3.10.4. 已经安装了tesseract-ocr,安装目录为&qu ...
- 用python写一个纪念日计算工具!有对象的特别注意了!
前言 纪念日计算工具 是在了解GUI的规程中,突发奇想写的一个小东西,用到的是Python的 tkinter 控件.本人非开发人员,渣渣数据分析师,如遇大佬请轻喷,如有代码错误或不规范,感谢指正. 主 ...
- 如何用python写小工具_用python写一个录音小工具
Python的paramiko,wxPython库的应用 Sound eXchange 命令行 需求 最近在给一个做语音识别的项目做QA工作.众所周知,此类人工智能方面的项目都需要一些数据收集的工作. ...
- 用python写一个ip查询工具库
首先附上一张高清有码的图,效果如图所示. 最近喜欢上了Python,总想用python搞点事情. 写此工具的目的 最近一段时间遇见过不少钓鱼网站,于是乎就在想,这些网站的服务器都在哪里? 为何如此猖獗 ...
- python小工具小发明_【kimol君的无聊小发明】—用python写截屏小工具
前言 今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码.于是乎,一个想法油然而生:"生活已经很无聊了,不如再无聊一点叭". 说干就干,那就开一个专题,我们称之为kim ...
- 【kimol君的无聊小发明】—用python写截屏小工具
[kimol君的无聊小发明]-用python写截屏小工具 前言 一.技术实现 1. 相关库 2. 定义窗口 3. 绘制工具条 4. 定义事件函数 二.后续改进 写在最后 前言 今天我看了一下自己的文件 ...
- python图像标记工具怎么用_图片标注工具LabelImg使用教程
1.进入labelImg-master文件夹,在空白处使用 "Shift+鼠标右键" ,选择在此处打开命令窗口,依次输入下面语句即可打开软件. pyrcc4 -o resource ...
最新文章
- Reddit票选 | 2019年绝对不能错过的机器学习论文
- DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版]...
- 花了2周时间收集汇总的大厂面经,节后准备跳槽的看过来!
- 《C和指针》读书笔记第三章数据
- 阿里天气数据接口调用实现(Java和JS)
- 为什么parsefloat加出来还是字符串_Python 100天从新手到大师 | Day 7 字符串与数据结构...
- iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动
- 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性
- 利用https实现站点的访问
- 有人问李嘉诚的儿子李泽楷:“你父亲都教了你哪些成功赚钱的秘诀?”
- 关于机器学习一些好的博客和资料
- TDA4VM芯片手册阅读笔记
- 智慧校园导航软件,实现3D校园室内外定位导航!
- T-SQL技巧的独孤求败阶段论
- 哥伦比亚网银支付PSE
- 为什么国外程序员的创造力比中国程序员强?
- 十进制浮点型数据转换成二进制,并在内存中的存储方式
- Numpy + Matplotlib 绘制白色画图
- 博士生成长需要经历的7道门
- arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱
热门文章
- you don't have permission to access / on this server(Apache Server权限访问问题)
- eclipse上搭建MyBatis环境
- 采购管理系统能为企业带来哪些好处?
- 如何更高效地阅读JDK源码
- JavaSecurity和JAAS——Java标准安全体系概述(上)
- 【i.MX8 Linux】构建 i.MX8 Yocto Project 映像
- Eplan P8安装在win10系统运行卡顿解决方案(适用于Version 2004及之后的版本)
- PDF文件如何搜索目录(书签)
- 【Ansys Workbench】—优化设计简介
- Oracle:数据库备份之exp与imp的使用(切记,不能在plsql或sqlplus中使用)