最近在做船只检测的工作需要大量的正样本,之前的一些样本各种形态的船只都有,这一次训练分类器希望使用只含船只侧面的图像,这样检测船的侧面的成功率可能会提高一点。这样就需要大量的船只侧面图像,并生成描述文件。这里我们之前已经生成过全船只的描述文件,只需要挑出侧面的图像,然后根据有的图像从原描述文件中选取存在的图像的描述信息保存在新的描述文件

描述文件的内容大概是这个样子的

224871_0.jpg 1 6 50 248 82

224871_10.jpg 1 16 79 269 89

224871_11.jpg 1 80 53 122 40

224871_12.jpg 1 53 57 219 79

224871_13.jpg 1 16 94 251 72

224871_14.jpg 1 20 79 197 66

224871_15.jpg 1 6 69 294 98

224871_16.jpg 1 91 86 155 54

224871_17.jpg 1 51 70 202 72

224871_18.jpg 1 6 42 294 99

224871_19.jpg 1 9 36 291 98

224871_1.jpg 1 37 77 243 81

224871_20.jpg 1 27 27 248 83

224871_21.jpg 1 40 63 250 80

224871_22.jpg 1 18 65 234 78

224871_23.jpg 1 12 51 272 89

224871_24.jpg 1 21 83 252 73

224871_25.jpg 1 32 62 230 75

224871_26.jpg 1 0 61 298 99

224871_27.jpg 1 8 100 271 83

224871_28.jpg 1 0 60 275 92

224871_29.jpg 1 72 100 151 49

224871_2.jpg 1 62 46 179 60

224871_30.jpg 1 137 64 149 49

224871_31.jpg 1 34 119 240 80

思路很简单,就是读一行看看那个jpg文件在不在文件夹里面,如果在的话,就把这行复制进新的描述文件。

第一个代码

import glob,os

unfound=0 (u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/*.jpg')]

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/info.txt', 'r') as f:

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/pos8.txt', 'w') as w:

for filetitle in f.readlines():

if filetitle.split(u' ')[0] in [os.path.split(filename)[-1] for filename in glob.glob (u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/*.jpg')]:

w.write(filetitle)

else:

unfound=unfound+1

print u'一共有%s个图片没找到' % unfound

这个代码挺短的,但是云讯速度却很慢原因在于第6行每次都要算一下整个集合,太慢了,所以可以优化

第二个代码

import glob,os

unfound,filenamelist=0,[os.path.split(filename)[-1] for filename in glob.glob (u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/*.jpg')]

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/info.txt', 'r') as f:

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/pos8.txt', 'w') as w:

for filetitle in f.readlines():

if filetitle.split(u' ')[0] in filenamelist:

w.write(filetitle)

else:

unfound=unfound+1

print u'一共有%s个图片没找到' % unfound

同样行数的代码速度提高了

第三个代码

import glob,os

unfound,filenamelist=0,[os.path.split(filename)[-1] for filename in glob.glob (u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/*.jpg')]

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/info.txt', 'r') as f:

with open(u'D:/IP_CV_WorkSpace/Img/第三批分类器/pos8/pos8.txt', 'w') as w:

filelist=f.readlines();

found=[w.write(filetitle) for filetitle in filelist if filetitle.split(u' ')[0] in filenamelist]

print u'一共有%s个图片没找到' % (len(filelist)-len(found))

使用列表生成器代码更短啦

如何用python画帆船_python学习笔记6——文件操作来生成船只侧面图像的描述文件...相关推荐

  1. python画猴子_Python学习笔记(1)

    其实学习每一种语言,都可以找到很快乐的学习方法.有兴趣,有乐趣,才会一直想学.知道print().input().if/else就可以做一个简陋的游戏了. print()#打印函数,将信息打印出来 i ...

  2. 如何用python画帆船_python 游戏(船只寻宝)

    1. 游戏思路和流程图 实现功能:船只在可以在大海上移动打捞宝藏,船只可以扫描1格范围内的宝藏(后续难度,可以调整扫描范围,可以调整前进的格数) 游戏流程图 2. 使用模块和游戏提示 import r ...

  3. python画梅花_Python学习笔记三:函数

    1 #!/usr/bin/env python 2 #coding:utf-8 3 4 'a test module' 5 6 __author__ = 'Sunflower' 7 8 9 ## 一. ...

  4. python字符串大全_python学习笔记:字符串操作大全

    1.借取字符串str = '0123456789′ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个 ...

  5. python tkinter 表格_python学习笔记(Tkinter编程利用Treeview实现表格自动更新)

    博主今天总结这段时间抽空写的一个GUI编程项目 功能是查看本地打印机队列,可选择指定队列重新打印 直接上图 UI设计包括3个区域左上方,右上方和下方列表区域 使用网格grid方法来分配位置 下面是界面 ...

  6. python pow和**_Python学习笔记 | 实例3:天天向上的力量

    本文为中国大学MOOC<Python语言程序设计>课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:<Python语言程序设计基础> 天天向上的力量 加 ...

  7. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  8. python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例

    本文实例讲述了Python学习笔记之pandas索引列.过滤.分组.求和功能.分享给大家供大家参考,具体如下: 前面我们已经把519961(基金编码)这种基金的历史净值明细表html内容抓取到了本地, ...

  9. python图形设置_python学习笔记——基本图形绘制

    1.python蟒蛇python蟒蛇代码 #PythonDraw.py import turtle turtle.setup(650,350,200,200)# 设置画布的长.宽.起点 turtle. ...

最新文章

  1. Dynamips和Vmware完成CCVP试验(4)
  2. Data Structures with C++ Using STL Chapter 3算法概述---笔记
  3. Oracle的ORA-02292报错:违反完整性约束,已找到子记录
  4. [转]JavaScript中的几个tip
  5. 【codeforces 798A】Mike and palindrome
  6. Selenium WebDriver中的TestNG侦听器及示例
  7. ajax下拉框省市级联动
  8. python解析xml文件选用模块_Python标准库系列之xml模块
  9. 【codevs1063NOIP04PJ】合并果子,贪心の钻石
  10. 2019/7/19 Bootstap练习
  11. Windows 下安装 swoole 具体步骤(转)
  12. 简单介绍四方聚合支付系统
  13. qrect在图片上显示矩形框_教你一招把身份证扫描到手机上,非常清晰!真是太方便了...
  14. UConn DataMining Math5671 课程小记 知识点:正则化方法
  15. 统计学中sp_统计学假设检验中 p 值的含义具体是什么?
  16. 使用蓝桥杯单片机实现ADC采集和实时时钟界面转换与报警功能
  17. js过滤树形结构数据并获取新的树形结构
  18. 【Python-基础】第二章 七十二变(杨淑娟)
  19. Excel无所不能的XLOOKUP,XLOOKUP函数不同场景的应用方法
  20. 使用EDTA进行TE注释

热门文章

  1. LED驱动程序--可拓展的LED驱动程序
  2. dB和功率单位dBm、dBw分析
  3. linux 进程 signal,c/c++ linux 进程间通信系列1,使用signal,kill
  4. C# dotnet 一个看上去还能用的二进制序列化帮助类
  5. 图片如何批量重命名?一步一步教会你
  6. java计算机毕业设计基于ssm的志愿者招募网站(源代码+数据库+Lw文档)
  7. In silico design of MHC class I highbinding affinity peptides through motifsactivation map
  8. v03.06 鸿蒙内核源码分析(时钟任务) | 调度的源动力从哪来 | 百篇博客分析HarmonyOS源码
  9. 姚芊羽整容过度脸变残 娱乐圈假面女神大盘点
  10. hdu2955(变形的01背包)