程序补充库

# 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写一个图片标注工具相关推荐

  1. 用Python写一个纪念日计算工具

    用python写一个纪念日计算工具 前言 主要内容 日期计算函数 GUI布局 用pyinstaller打包生成.exe文件 打包后的.exe文件预览 运行结果 最后提前祝马英俊生日快乐吧~ 前言 纪念 ...

  2. 用python写一个动态壁纸工具

    screenpv.py: use pyqt5 + opencv to open a video or camera 首先用pyqt5+opencv写一个全屏播放视频的工具 import sys imp ...

  3. Python的一个图片识别工具-PyTesseract(Win10)

    PyTesseract是Python的一个第三方库,可以识别图片中文字. 前提 已经安装了Python.我安装的Python版本是3.10.4. 已经安装了tesseract-ocr,安装目录为&qu ...

  4. 用python写一个纪念日计算工具!有对象的特别注意了!

    前言 纪念日计算工具 是在了解GUI的规程中,突发奇想写的一个小东西,用到的是Python的 tkinter 控件.本人非开发人员,渣渣数据分析师,如遇大佬请轻喷,如有代码错误或不规范,感谢指正. 主 ...

  5. 如何用python写小工具_用python写一个录音小工具

    Python的paramiko,wxPython库的应用 Sound eXchange 命令行 需求 最近在给一个做语音识别的项目做QA工作.众所周知,此类人工智能方面的项目都需要一些数据收集的工作. ...

  6. 用python写一个ip查询工具库

    首先附上一张高清有码的图,效果如图所示. 最近喜欢上了Python,总想用python搞点事情. 写此工具的目的 最近一段时间遇见过不少钓鱼网站,于是乎就在想,这些网站的服务器都在哪里? 为何如此猖獗 ...

  7. python小工具小发明_【kimol君的无聊小发明】—用python写截屏小工具

    前言 今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码.于是乎,一个想法油然而生:"生活已经很无聊了,不如再无聊一点叭". 说干就干,那就开一个专题,我们称之为kim ...

  8. 【kimol君的无聊小发明】—用python写截屏小工具

    [kimol君的无聊小发明]-用python写截屏小工具 前言 一.技术实现 1. 相关库 2. 定义窗口 3. 绘制工具条 4. 定义事件函数 二.后续改进 写在最后 前言 今天我看了一下自己的文件 ...

  9. python图像标记工具怎么用_图片标注工具LabelImg使用教程

    1.进入labelImg-master文件夹,在空白处使用 "Shift+鼠标右键" ,选择在此处打开命令窗口,依次输入下面语句即可打开软件. pyrcc4 -o resource ...

最新文章

  1. Reddit票选 | 2019年绝对不能错过的机器学习论文
  2. DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版]...
  3. 花了2周时间收集汇总的大厂面经,节后准备跳槽的看过来!
  4. 《C和指针》读书笔记第三章数据
  5. 阿里天气数据接口调用实现(Java和JS)
  6. 为什么parsefloat加出来还是字符串_Python 100天从新手到大师 | Day 7 字符串与数据结构...
  7. iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动
  8. 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性
  9. 利用https实现站点的访问
  10. 有人问李嘉诚的儿子李泽楷:“你父亲都教了你哪些成功赚钱的秘诀?”
  11. 关于机器学习一些好的博客和资料
  12. TDA4VM芯片手册阅读笔记
  13. 智慧校园导航软件,实现3D校园室内外定位导航!
  14. T-SQL技巧的独孤求败阶段论
  15. 哥伦比亚网银支付PSE
  16. 为什么国外程序员的创造力比中国程序员强?
  17. 十进制浮点型数据转换成二进制,并在内存中的存储方式
  18. Numpy + Matplotlib 绘制白色画图
  19. 博士生成长需要经历的7道门
  20. arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱

热门文章

  1. you don't have permission to access / on this server(Apache Server权限访问问题)
  2. eclipse上搭建MyBatis环境
  3. 采购管理系统能为企业带来哪些好处?
  4. 如何更高效地阅读JDK源码
  5. JavaSecurity和JAAS——Java标准安全体系概述(上)
  6. 【i.MX8 Linux】构建 i.MX8 Yocto Project 映像
  7. Eplan P8安装在win10系统运行卡顿解决方案(适用于Version 2004及之后的版本)
  8. PDF文件如何搜索目录(书签)
  9. 【Ansys Workbench】—优化设计简介
  10. Oracle:数据库备份之exp与imp的使用(切记,不能在plsql或sqlplus中使用)