SiriBlog

siriyang的个人博客


  • 首页

  • 排行榜

  • 标签115

  • 分类37

  • 归档320

  • 关于

  • 搜索

基于pyqt的图片批量文字标注程序

发表于 2020-04-15 更新于 2021-10-29 分类于 计算机 , 技术 , Python 阅读次数: Valine:
本文字数: 3.1k 阅读时长 ≈ 3 分钟

2020.04.15

Note1

  使用python获取文件创建时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 获取文件的时间属性
# 用到的知识
# os.getcwd() 方法用于返回当前工作目录
# os.path.getatime(file) 输出文件访问时间
# os.path.getctime(file) 输出文件的创建时间
# os.path.getmtime(file) 输出文件最近修改时间


import time
import os

def fileTime(file):
return [
time.ctime(os.path.getatime(file)),
time.ctime(os.path.getmtime(file)),
time.ctime(os.path.getctime(file))
]

times = fileTime(os.getcwd())
print(times)
print(type(times))

  把时间戳转化为时间

1
2
3
4
'''把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12'''
def TimeStampToTime(timestamp):
timeStruct = time.localtime(timestamp)
return time.strftime('%Y-%m-%d %H:%M:%S', timeStruct)

Note2

  在QImage上绘制文本

1
2
3
4
5
6
7
8
9
def drawImage(img,info):
w, h = img.width(), img.height()
painter=QPainter()
painter.begin(img)
painter.setPen(QColor(255,255,255))
painter.setFont(QFont('SimSun',12))
painter.drawText(QRect(w*0.1,h-h*0.15,w*0.8,h*0.1),Qt.AlignCenter,info)
painter.end()
return img

Note3

  opencv打开保存带路径带中文的图片:

读取
1
2
3
def cv_imread(filePath="", flags=-1):
cv_img = cv2.imdecode(numpy.fromfile(filePath, dtype=numpy.uint8), flags)
return cv_img
  • flags=-1:使用图片默认通道数
  • flags=0:打开为灰度图
  • flags=1:打开为彩色图
保存
1
2
3
def cv_imwrite(cvimg,filepath):
ext='.'+filepath.split('.')[-1]
cv2.imencode(ext, cvimg)[1].tofile(filepath)

Note4

  opencv、QImage之间的转换:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def CVMat2QImage(cv_image):
height, width, bytesPerComponent = cv_image.shape
bytesPerLine = 3 * width
cv2.cvtColor(cv_image, cv2.COLOR_BGR2RGB, cv_image)
qimg = QImage(cv_image.data, width, height, bytesPerLine, QImage.Format_RGB888)
return qimg

def QImage2CVMat(incomingImage):
''' Converts a QImage into an opencv MAT format '''
incomingImage = incomingImage.convertToFormat(QImage.Format_RGBA8888)
width = incomingImage.width()
height = incomingImage.height()
ptr = incomingImage.bits()
ptr.setsize(height * width * 4)
arr = numpy.frombuffer(ptr, numpy.uint8).reshape((height, width, 4))
return arr

2020.04.16

Note5

  configparser读写带中文的配置信息,需要设置编码:

1
2
3
self.config = configparser.ConfigParser()
self.config.read("init.ini",encoding="utf8")
self.config.write(open("./init.ini", "w",encoding="utf8"))

Note6

  pyqt颜色选择器用法:

1
col = QColorDialog.getColor()

Note7

  QLineEdit内容修改事件绑定:

1
self.lineedit_textformat.textChanged.connect(...)

Note8

  pyinstaller打包时添加图标,使用-i参数:

1
pyinstaller -F -w -i pictures.ico main.py

Note9

  读取图片EXIF信息,首先安装包exifread,然后编写如下代码:

1
2
3
4
5
6
7
f= open(self.filepath, 'rb')
tags = exifread.process_file(f)
timeinfo=None
if 'EXIF DateTimeOriginal' in tags.keys():
timestr=tags['EXIF DateTimeOriginal'].printable
imgctime=time.strptime(tags['EXIF DateTimeOriginal'].printable, "%Y:%m:%d %H:%M:%S")
timeinfo =[imgctime.tm_year,imgctime.tm_mon,imgctime.tm_mday,imgctime.tm_hour,imgctime.tm_min,imgctime.tm_sec]

2020.04.18

Note10

  PIL、QImage之间的转换:

1
2
3
4
5
6
7
from PIL import Image, ImageQt

# QImage转Image
image = ImageQt.fromqimage(qimage)

# Image转QImage
qimage = ImageQt.ImageQt(image)

参考资料:pyqt5 QImage与PIL Image互转

-------- 本文结束 感谢阅读 --------
相关文章
  • 使用pyqt制作二维码生成器
  • SiriPR_Python开发中遇到的问题
  • 中医药天池大数据竞赛--中药说明书实体识别挑战
  • NLP综合实践(三)
  • NLP综合实践(二)
觉得文章写的不错的话,请我喝瓶怡宝吧!😀
SiriYang 微信支付

微信支付

SiriYang 支付宝

支付宝

  • 本文标题: 基于pyqt的图片批量文字标注程序
  • 本文作者: SiriYang
  • 创建时间: 2020年04月15日 - 19时04分
  • 修改时间: 2021年10月29日 - 18时10分
  • 本文链接: https://blog.siriyang.cn/posts/20200415195754id.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习笔记 Python pyqt
Bulls and Cows的Java求解过程遇到的问题
基于Qt的工业名牌识别系统遇到的问题
SiriYang

SiriYang

努力搬砖攒钱买镜头的摄影迷
320 日志
33 分类
88 标签
RSS
GitHub E-Mail
Creative Commons
Links
  • 友情链接
  • 作品商铺

蜀ICP备19008337号 © 2019 – 2025 SiriYang | 1.7m | 25:41
0%