def ShowNextPic(self): '''显示下一张图片''' self.lbl_currentCount.setText('当前张数:{}'.format(str(self.index + 1))) self.fileName = self.files[self.index] if self.index == len(self.fileNameList) -1: self.lbl_picOriginName.setText(self.fileName) else: self.lbl_picOriginName.setText(self.backNewFileName) self.image = TaggingUtils.cv_imread(os.path.join(self.directory, self.fileName)) self.lbl_pic.setPixmap(QPixmap.fromImage(TaggingUtils.QIM_From_Numpy(self.image)))
def readFiles(self): '''读取文件''' self.fileNameList = [] self.index = 0 self.files = TaggingUtils.read_all_files(self.directory) if self.files is None or len(self.files) == 0 : QtWidgets.QMessageBox.about(self, '提示', '该文件夹没有目标文件!') # sys.exit(0) else: self.CountSum = len(self.files) self.lbl_currentCount.setText('当前张数:{}'.format(str(self.index + 1))) self.lbl_counts.setText('总张数:{}'.format(str(self.CountSum))) self.fileName = self.files[self.index] self.fileNameList.append(self.fileName) self.lbl_picOriginName.setText(self.fileName) self.image = TaggingUtils.cv_imread(os.path.join(self.directory, self.fileName)) self.lbl_pic.setPixmap(QPixmap.fromImage(TaggingUtils.QIM_From_Numpy(self.image)))
def AnalysisIntroduction(self): '''写说明文档''' self.refileNameList, self.classificationLabels = TaggingUtils.AnalysisConfig('123456') self.classificationLabels = ['delete'] + self.classificationLabels self.classificationSum = len(self.classificationLabels) zipIndex =[i for i in range(self.classificationSum)] self.label_to_int = dict(zip(self.classificationLabels, zipIndex)) self.int_to_label = dict(zip(zipIndex, self.classificationLabels)) text = ' 根据配置文件{0}里面的参数{1},将图片分为{2}类。现将标注时的按键对应关系说明如下:' \ '\n'.format((TaggingUtils.config_dir), 'ClassificationLabel', str(self.classificationSum - 1)) for i in range(self.classificationSum): text += '({0})如果分为:{1}, 请按:{2}\n'.format(str(i), self.classificationLabels[i], str(i)) self.textEdit_introduction.setText(text)
def DBUpdateAndMoveFiles(self, IsOne): '''剪切文件和更新数据库,分一个和所有两种情况''' if IsOne: # move file index = self.index - self.DBSaveLength - 1 fetchone_sql = '''SELECT * FROM TaggingDetail WHERE id = ?''' result = DB.fetchone(self.conn, fetchone_sql, index) directory = result[0][1] oldFileName = result[0][2] newFileName = result[0][3] classfication = self.int_to_label[result[0][4]] oldName = os.path.join(directory, oldFileName) newName = os.path.join(self.moveTargetBaseDir, os.path.join(classfication, newFileName)) TaggingUtils.MoveAndRename(oldName, newName) # update DB delete_sql = '''DELETE FROM TaggingDetail WHERE id = ?''' DB.delete(self.conn, delete_sql, [(index, )]) else: # move all files try: fetchone_sql = '''SELECT * FROM TaggingDetail ''' result = DB.fetchall(self.conn, fetchone_sql) for i in range(len(result)): directory = result[i][1] oldFileName = result[i][2] newFileName = result[i][3] classfication = self.int_to_label[result[i][4]] oldName = os.path.join(directory, oldFileName) newName = os.path.join( self.moveTargetBaseDir, os.path.join(classfication, newFileName)) TaggingUtils.MoveAndRename(oldName, newName) # drop DB 不用删除 DB.drop_table(self.conn, DB.TaggingIndexTable) except: pass
import os # a = set() # a.add(1) # a.add(2) # a.add(1) # print(a) # print(len(a)) # a = [1, 2] # a = [0] + a # print(a) import shutil import TaggingUtils # a = 'E:/meng-TaggingTool/pic\\迪丽热巴_8.jpg' #迪丽热巴_1.jpg b = 'E:/meng-TaggingTool/杨幂/aaaaaa.jpg' TaggingUtils.MoveAndRename(a, b) # a = [] # for i in range(len(a)): # print(i)