Skip to content

Commit 975eaa8

Browse files
committed
implement paddlepaddle splitting datasets list
1 parent 892ab0a commit 975eaa8

File tree

5 files changed

+501
-14
lines changed

5 files changed

+501
-14
lines changed
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# Form implementation generated from reading ui file 'c:\Users\Youss\Documents\pp\New folder\myplugin\deep-learning-datasets-maker\deep-learning-datasets-maker\split_rs_data_dialog_base.ui'
4+
#
5+
# Created by: PyQt5 UI code generator 5.15.4
6+
#
7+
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
8+
# run again. Do not edit this file unless you know what you are doing.
9+
10+
11+
from PyQt5 import QtCore, QtGui, QtWidgets
12+
13+
14+
class Ui_SplitRSDataDialogBase(object):
15+
def setupUi(self, SplitRSDataDialogBase):
16+
SplitRSDataDialogBase.setObjectName("SplitRSDataDialogBase")
17+
SplitRSDataDialogBase.resize(440, 400)
18+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
19+
sizePolicy.setHorizontalStretch(0)
20+
sizePolicy.setVerticalStretch(0)
21+
sizePolicy.setHeightForWidth(SplitRSDataDialogBase.sizePolicy().hasHeightForWidth())
22+
SplitRSDataDialogBase.setSizePolicy(sizePolicy)
23+
SplitRSDataDialogBase.setMinimumSize(QtCore.QSize(440, 280))
24+
SplitRSDataDialogBase.setMaximumSize(QtCore.QSize(440, 400))
25+
self.layoutWidget = QtWidgets.QWidget(SplitRSDataDialogBase)
26+
self.layoutWidget.setGeometry(QtCore.QRect(10, 12, 416, 373))
27+
self.layoutWidget.setObjectName("layoutWidget")
28+
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
29+
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
30+
self.verticalLayout.setObjectName("verticalLayout")
31+
self.horizontalLayout = QtWidgets.QHBoxLayout()
32+
self.horizontalLayout.setObjectName("horizontalLayout")
33+
self.label = QtWidgets.QLabel(self.layoutWidget)
34+
self.label.setMinimumSize(QtCore.QSize(176, 0))
35+
self.label.setMaximumSize(QtCore.QSize(176, 16777215))
36+
self.label.setObjectName("label")
37+
self.horizontalLayout.addWidget(self.label)
38+
self.mMapLayerComboBoxR = QgsMapLayerComboBox(self.layoutWidget)
39+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
40+
sizePolicy.setHorizontalStretch(0)
41+
sizePolicy.setVerticalStretch(0)
42+
sizePolicy.setHeightForWidth(self.mMapLayerComboBoxR.sizePolicy().hasHeightForWidth())
43+
self.mMapLayerComboBoxR.setSizePolicy(sizePolicy)
44+
self.mMapLayerComboBoxR.setMinimumSize(QtCore.QSize(230, 27))
45+
self.mMapLayerComboBoxR.setMaximumSize(QtCore.QSize(230, 16777215))
46+
self.mMapLayerComboBoxR.setObjectName("mMapLayerComboBoxR")
47+
self.horizontalLayout.addWidget(self.mMapLayerComboBoxR)
48+
self.verticalLayout.addLayout(self.horizontalLayout)
49+
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
50+
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
51+
self.label_2 = QtWidgets.QLabel(self.layoutWidget)
52+
self.label_2.setMinimumSize(QtCore.QSize(176, 0))
53+
self.label_2.setMaximumSize(QtCore.QSize(176, 16777215))
54+
self.label_2.setObjectName("label_2")
55+
self.horizontalLayout_2.addWidget(self.label_2)
56+
self.mMapLayerComboBoxV = QgsMapLayerComboBox(self.layoutWidget)
57+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
58+
sizePolicy.setHorizontalStretch(0)
59+
sizePolicy.setVerticalStretch(0)
60+
sizePolicy.setHeightForWidth(self.mMapLayerComboBoxV.sizePolicy().hasHeightForWidth())
61+
self.mMapLayerComboBoxV.setSizePolicy(sizePolicy)
62+
self.mMapLayerComboBoxV.setMinimumSize(QtCore.QSize(230, 27))
63+
self.mMapLayerComboBoxV.setMaximumSize(QtCore.QSize(230, 16777215))
64+
self.mMapLayerComboBoxV.setObjectName("mMapLayerComboBoxV")
65+
self.horizontalLayout_2.addWidget(self.mMapLayerComboBoxV)
66+
self.verticalLayout.addLayout(self.horizontalLayout_2)
67+
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
68+
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
69+
self.label_3 = QtWidgets.QLabel(self.layoutWidget)
70+
self.label_3.setMinimumSize(QtCore.QSize(176, 16))
71+
self.label_3.setMaximumSize(QtCore.QSize(176, 16))
72+
self.label_3.setObjectName("label_3")
73+
self.horizontalLayout_3.addWidget(self.label_3)
74+
self.comboBoxImgSize = QtWidgets.QComboBox(self.layoutWidget)
75+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
76+
sizePolicy.setHorizontalStretch(0)
77+
sizePolicy.setVerticalStretch(0)
78+
sizePolicy.setHeightForWidth(self.comboBoxImgSize.sizePolicy().hasHeightForWidth())
79+
self.comboBoxImgSize.setSizePolicy(sizePolicy)
80+
self.comboBoxImgSize.setMinimumSize(QtCore.QSize(100, 22))
81+
self.comboBoxImgSize.setMaximumSize(QtCore.QSize(100, 22))
82+
self.comboBoxImgSize.setObjectName("comboBoxImgSize")
83+
self.horizontalLayout_3.addWidget(self.comboBoxImgSize)
84+
spacerItem = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
85+
self.horizontalLayout_3.addItem(spacerItem)
86+
self.verticalLayout.addLayout(self.horizontalLayout_3)
87+
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
88+
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
89+
self.label_6 = QtWidgets.QLabel(self.layoutWidget)
90+
self.label_6.setMinimumSize(QtCore.QSize(176, 0))
91+
self.label_6.setMaximumSize(QtCore.QSize(176, 16777215))
92+
self.label_6.setObjectName("label_6")
93+
self.horizontalLayout_4.addWidget(self.label_6)
94+
self.mQfwRasterized = QgsFileWidget(self.layoutWidget)
95+
self.mQfwRasterized.setStorageMode(QgsFileWidget.SaveFile)
96+
self.mQfwRasterized.setObjectName("mQfwRasterized")
97+
self.horizontalLayout_4.addWidget(self.mQfwRasterized)
98+
self.verticalLayout.addLayout(self.horizontalLayout_4)
99+
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
100+
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
101+
self.label_5 = QtWidgets.QLabel(self.layoutWidget)
102+
self.label_5.setMinimumSize(QtCore.QSize(176, 0))
103+
self.label_5.setMaximumSize(QtCore.QSize(176, 16777215))
104+
self.label_5.setObjectName("label_5")
105+
self.horizontalLayout_5.addWidget(self.label_5)
106+
self.mQfwImages = QgsFileWidget(self.layoutWidget)
107+
self.mQfwImages.setStorageMode(QgsFileWidget.GetDirectory)
108+
self.mQfwImages.setObjectName("mQfwImages")
109+
self.horizontalLayout_5.addWidget(self.mQfwImages)
110+
self.verticalLayout.addLayout(self.horizontalLayout_5)
111+
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
112+
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
113+
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
114+
self.label_4.setMinimumSize(QtCore.QSize(176, 0))
115+
self.label_4.setMaximumSize(QtCore.QSize(176, 16777215))
116+
self.label_4.setObjectName("label_4")
117+
self.horizontalLayout_6.addWidget(self.label_4)
118+
self.mQfwLabels = QgsFileWidget(self.layoutWidget)
119+
self.mQfwLabels.setStorageMode(QgsFileWidget.GetDirectory)
120+
self.mQfwLabels.setObjectName("mQfwLabels")
121+
self.horizontalLayout_6.addWidget(self.mQfwLabels)
122+
self.verticalLayout.addLayout(self.horizontalLayout_6)
123+
self.checkBoxInSeg = QtWidgets.QCheckBox(self.layoutWidget)
124+
self.checkBoxInSeg.setObjectName("checkBoxInSeg")
125+
self.verticalLayout.addWidget(self.checkBoxInSeg)
126+
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
127+
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
128+
self.label_7 = QtWidgets.QLabel(self.layoutWidget)
129+
self.label_7.setMinimumSize(QtCore.QSize(176, 0))
130+
self.label_7.setMaximumSize(QtCore.QSize(176, 16777215))
131+
self.label_7.setObjectName("label_7")
132+
self.horizontalLayout_7.addWidget(self.label_7)
133+
self.mQfwLabels_InSeg = QgsFileWidget(self.layoutWidget)
134+
self.mQfwLabels_InSeg.setAcceptDrops(False)
135+
self.mQfwLabels_InSeg.setStorageMode(QgsFileWidget.GetDirectory)
136+
self.mQfwLabels_InSeg.setObjectName("mQfwLabels_InSeg")
137+
self.horizontalLayout_7.addWidget(self.mQfwLabels_InSeg)
138+
self.verticalLayout.addLayout(self.horizontalLayout_7)
139+
self.checkBoxPaddle = QtWidgets.QCheckBox(self.layoutWidget)
140+
self.checkBoxPaddle.setEnabled(True)
141+
self.checkBoxPaddle.setObjectName("checkBoxPaddle")
142+
self.verticalLayout.addWidget(self.checkBoxPaddle)
143+
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
144+
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
145+
self.label_8 = QtWidgets.QLabel(self.layoutWidget)
146+
self.label_8.setEnabled(True)
147+
self.label_8.setMinimumSize(QtCore.QSize(176, 0))
148+
self.label_8.setMaximumSize(QtCore.QSize(176, 16777215))
149+
self.label_8.setObjectName("label_8")
150+
self.horizontalLayout_8.addWidget(self.label_8)
151+
self.mOpacityWidget_Training = QgsOpacityWidget(self.layoutWidget)
152+
self.mOpacityWidget_Training.setEnabled(True)
153+
self.mOpacityWidget_Training.setOpacity(0.6)
154+
self.mOpacityWidget_Training.setObjectName("mOpacityWidget_Training")
155+
self.horizontalLayout_8.addWidget(self.mOpacityWidget_Training)
156+
self.verticalLayout.addLayout(self.horizontalLayout_8)
157+
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
158+
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
159+
self.label_9 = QtWidgets.QLabel(self.layoutWidget)
160+
self.label_9.setMinimumSize(QtCore.QSize(176, 0))
161+
self.label_9.setMaximumSize(QtCore.QSize(176, 16777215))
162+
self.label_9.setObjectName("label_9")
163+
self.horizontalLayout_9.addWidget(self.label_9)
164+
self.mOpacityWidget_Validating = QgsOpacityWidget(self.layoutWidget)
165+
self.mOpacityWidget_Validating.setOpacity(0.2)
166+
self.mOpacityWidget_Validating.setObjectName("mOpacityWidget_Validating")
167+
self.horizontalLayout_9.addWidget(self.mOpacityWidget_Validating)
168+
self.verticalLayout.addLayout(self.horizontalLayout_9)
169+
self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
170+
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
171+
self.label_10 = QtWidgets.QLabel(self.layoutWidget)
172+
self.label_10.setMinimumSize(QtCore.QSize(176, 0))
173+
self.label_10.setMaximumSize(QtCore.QSize(176, 16777215))
174+
self.label_10.setObjectName("label_10")
175+
self.horizontalLayout_10.addWidget(self.label_10)
176+
self.mOpacityWidget_Testing = QgsOpacityWidget(self.layoutWidget)
177+
self.mOpacityWidget_Testing.setEnabled(False)
178+
self.mOpacityWidget_Testing.setOpacity(0.2)
179+
self.mOpacityWidget_Testing.setObjectName("mOpacityWidget_Testing")
180+
self.horizontalLayout_10.addWidget(self.mOpacityWidget_Testing)
181+
self.verticalLayout.addLayout(self.horizontalLayout_10)
182+
self.button_box = QtWidgets.QDialogButtonBox(self.layoutWidget)
183+
self.button_box.setOrientation(QtCore.Qt.Horizontal)
184+
self.button_box.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
185+
self.button_box.setObjectName("button_box")
186+
self.verticalLayout.addWidget(self.button_box)
187+
188+
self.retranslateUi(SplitRSDataDialogBase)
189+
self.button_box.accepted.connect(SplitRSDataDialogBase.accept)
190+
self.button_box.rejected.connect(SplitRSDataDialogBase.reject)
191+
QtCore.QMetaObject.connectSlotsByName(SplitRSDataDialogBase)
192+
193+
def retranslateUi(self, SplitRSDataDialogBase):
194+
_translate = QtCore.QCoreApplication.translate
195+
SplitRSDataDialogBase.setWindowTitle(_translate("SplitRSDataDialogBase", "Deep Learning Datasets Maker"))
196+
self.label.setText(_translate("SplitRSDataDialogBase", "Input Raster Layer"))
197+
self.label_2.setText(_translate("SplitRSDataDialogBase", "Input Vector Layer"))
198+
self.label_3.setText(_translate("SplitRSDataDialogBase", "Splitting Image Size"))
199+
self.label_6.setText(_translate("SplitRSDataDialogBase", "Output Rasterized"))
200+
self.label_5.setText(_translate("SplitRSDataDialogBase", "Output Images Location"))
201+
self.label_4.setText(_translate("SplitRSDataDialogBase", "Output Labels Location"))
202+
self.checkBoxInSeg.setText(_translate("SplitRSDataDialogBase", "Instance Segmentation"))
203+
self.label_7.setText(_translate("SplitRSDataDialogBase", "Output Instance Segmentation"))
204+
self.checkBoxPaddle.setText(_translate("SplitRSDataDialogBase", "PaddlePaddle Spilit Custom Dataset and Generate File List"))
205+
self.label_8.setText(_translate("SplitRSDataDialogBase", "Training"))
206+
self.label_9.setText(_translate("SplitRSDataDialogBase", "Validating"))
207+
self.label_10.setText(_translate("SplitRSDataDialogBase", "Testing"))
208+
from qgsfilewidget import QgsFileWidget
209+
from qgsmaplayercombobox import QgsMapLayerComboBox
210+
from qgsopacitywidget import QgsOpacityWidget

deep-learning-datasets-maker/split_rs_data.py

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* *
2222
***************************************************************************/
2323
"""
24+
from numpy import double
2425
from qgis.PyQt.QtCore import QSettings, QTranslator, QCoreApplication
2526
from qgis.PyQt.QtGui import QIcon
2627
from qgis.PyQt.QtWidgets import QAction, QFileDialog
@@ -34,9 +35,7 @@
3435
import os.path
3536
from qgis.utils import iface
3637
import os
37-
import argparse
3838
import os.path as osp
39-
from tqdm import tqdm
4039
from .utils import *
4140

4241

@@ -207,11 +206,34 @@ def state_changed(self, state):
207206
2 unchecked
208207
"""
209208
if state == 2:
210-
self.dlg.mQfwLabels_InSeg.setHidden(False)
211-
self.dlg.label_7.setHidden(False)
209+
self.dlg.mQfwLabels_InSeg.setEnabled(True) #We also can use .setHidden(False)
210+
self.dlg.label_7.setEnabled(True)
212211
else :
213-
self.dlg.mQfwLabels_InSeg.setHidden(True)
214-
self.dlg.label_7.setHidden(True)
212+
self.dlg.mQfwLabels_InSeg.setEnabled(False)
213+
self.dlg.label_7.setEnabled(False)
214+
def state_changed_paddle(self, state):
215+
if state == 2:
216+
self.dlg.mOpacityWidget_Training.setEnabled(True)
217+
self.dlg.mOpacityWidget_Validating.setEnabled(True)
218+
self.dlg.label_8.setEnabled(True)
219+
self.dlg.label_9.setEnabled(True)
220+
self.dlg.label_10.setEnabled(True)
221+
else :
222+
self.dlg.mOpacityWidget_Training.setEnabled(False)
223+
self.dlg.mOpacityWidget_Validating.setEnabled(False)
224+
self.dlg.label_8.setEnabled(False)
225+
self.dlg.label_9.setEnabled(False)
226+
self.dlg.label_10.setEnabled(False)
227+
228+
def state_changed_training(self, state):
229+
# testing_set = 1.0 - (double(self.dlg.mOpacityWidget_Training.opacity()) + double(self.dlg.mOpacityWidget_Validating.opacity()))
230+
Training_Set = self.dlg.mOpacityWidget_Training.opacity()
231+
Val_Set = self.dlg.mOpacityWidget_Validating.opacity()
232+
Testing_Set = self.dlg.mOpacityWidget_Testing.opacity()
233+
if Testing_Set == 0:
234+
self.dlg.mOpacityWidget_Validating.setOpacity(1.0 - Training_Set)
235+
self.dlg.mOpacityWidget_Testing.setOpacity(1.0 - (Training_Set+Val_Set))
236+
215237

216238
def run(self):
217239
"""Run method that performs all the real work"""
@@ -221,8 +243,8 @@ def run(self):
221243
if self.first_start == True:
222244
self.first_start = False
223245
self.dlg = SplitRSDataDialog()
224-
if not self.dlg.isVisible():
225-
self.dlg.show()
246+
# if not self.dlg.isVisible():
247+
# self.dlg.show()
226248
# self.dlg.pushButtonVR.clicked.connect(self.select_output_rasterize)
227249
# self.dlg.pushButtonImg.clicked.connect(self.select_output_images)
228250
# self.dlg.pushButtonLabl.clicked.connect(self.select_output_labels)
@@ -245,7 +267,11 @@ def run(self):
245267
self.dlg.comboBoxImgSize.addItems(["64", "128", "256", "512", "1024"])
246268
self.dlg.comboBoxImgSize.setCurrentIndex(3)
247269
self.dlg.checkBoxInSeg.setChecked(True)
270+
self.dlg.checkBoxPaddle.setChecked(True)
248271
self.dlg.checkBoxInSeg.stateChanged.connect(self.state_changed)
272+
self.dlg.checkBoxPaddle.stateChanged.connect(self.state_changed_paddle)
273+
self.dlg.mOpacityWidget_Training.opacityChanged.connect(self.state_changed_training)
274+
self.dlg.mOpacityWidget_Validating.opacityChanged.connect(self.state_changed_training)
249275

250276
# show the dialog
251277
self.dlg.show()
@@ -308,4 +334,9 @@ def run(self):
308334
else :
309335
feedback.pushInfo("Option instance segmentation is not selected")
310336

337+
# if self.dlg.checkBoxPaddle.isChecked():
338+
# generate_list()
339+
# else :
340+
# feedback.pushInfo("Option instance segmentation is not selected")
341+
311342
iface.messageBar().pushMessage("You will find the dataset in " + image_folder_path, level=Qgis.Success, duration=5)

0 commit comments

Comments
 (0)