fix some bugs

This commit is contained in:
copper 2022-05-12 21:06:50 +08:00
parent 4bb6417131
commit e3182cfaf5
8 changed files with 35 additions and 13 deletions

View File

@ -0,0 +1,5 @@
2022-05-12 21:03:53,901 - root - INFO - lic data:2022-12-01 00:00:00
2022-05-12 21:03:53,905 - root - INFO - remain_days: 202
2022-05-12 21:03:55,251 - root - INFO - lic data:2022-12-01 00:00:00
2022-05-12 21:03:55,251 - root - INFO - remain_days: 202
2022-05-12 21:04:11,685 - root - INFO - AAA.tif-BBB.tif

View File

@ -17,7 +17,7 @@ class MyDialog(QDialog):
super().__init__(parent)
self.setWindowTitle('BasicChange')
self.setWindowIcon(QIcon(":/icons/logo.svg"))
self.setWindowIcon(QIcon(":/icons/logo.png"))
self.setFixedWidth(500)
@ -124,9 +124,12 @@ class BasicMethod(BasicPlugin):
out_ds.SetProjection(ds1.GetProjection())
max_diff = 0
min_diff = math.inf
for j in range(yblocks):
for j in range(yblocks + 1):
self.message_send.emit(f'计算{j}/{yblocks}')
block_xy = (0, j * cell_size[1])
if block_xy[1] > ysize:
break
block_size = (xsize, cell_size[1])
if block_xy[1] + block_size[1] > ysize:
block_size = (xsize, ysize - block_xy[1])
@ -141,7 +144,7 @@ class BasicMethod(BasicPlugin):
block_diff = block_diff.astype(np.float32)
block_diff = np.abs(block_diff)
min_diff = min(min_diff, block_diff.min())
min_diff = min(min_diff, block_diff[block_diff > 0].min())
max_diff = max(max_diff, block_diff.max())
out_ds.GetRasterBand(1).WriteArray(block_diff, *block_xy)
@ -152,11 +155,15 @@ class BasicMethod(BasicPlugin):
self.message_send.emit('归一化概率中...')
temp_in_ds = gdal.Open(out_tif)
out_normal_tif = os.path.join(out, 'diff_0_255.tif')
out_normal_tif = os.path.join(out, '{}.tif'.format(int(np.random.rand() * 100000)))
out_normal_ds = driver.Create(out_normal_tif, xsize, ysize, 1, gdal.GDT_Byte)
out_normal_ds.SetGeoTransform(ds1.GetGeoTransform())
out_normal_ds.SetProjection(ds1.GetProjection())
hist = np.zeros(256, dtype=np.int32)
for j in range(yblocks):
for j in range(yblocks+1):
block_xy = (0, j * cell_size[1])
if block_xy[1] > ysize:
break
block_size = (xsize, cell_size[1])
if block_xy[1] + block_size[1] > ysize:
block_size = (xsize, ysize - block_xy[1])
@ -164,9 +171,14 @@ class BasicMethod(BasicPlugin):
block_data = (block_data - min_diff) / (max_diff - min_diff) * 255
block_data = block_data.astype(np.uint8)
out_normal_ds.GetRasterBand(1).WriteArray(block_data, *block_xy)
hist_t, _ = np.histogram(block_data, bins=256)
hist_t, _ = np.histogram(block_data, bins=256, range=(0, 256))
hist += hist_t
print(hist)
del temp_in_ds
try:
os.remove(out_tif)
except:
pass
self.gap = OTSU(hist)
self.message_send.emit('OTSU' + str(self.gap))

View File

@ -22,7 +22,7 @@ class ExportDialog(QDialog):
for layer in Project().layers.values():
for result_layer in layer.results:
if result_layer.layer_type == ResultLayer.POINT:
result_layer_select.addItem( layer.name[5:] + '-' + result_layer.name, result_layer)
result_layer_select.addItem( layer.name[:5] + '-' + result_layer.name, result_layer)
for i in range(result_layer_select.count() - 1):
result_layer_select.setItemIcon(i + 1, QIcon(":/icons/layer.png"))

View File

@ -12,7 +12,7 @@ from rscder.gui.result import ResultTable
from rscder.plugins.loader import PluginLoader
from rscder.utils import Settings
from rscder.utils.project import Project
from rscder.gui.layercombox import LayerCombox
class MainWindow(QMainWindow):
def __init__(self, parent=None, **kargs):

View File

@ -9,7 +9,7 @@ class Create(QDialog):
def __init__(self, parent=None) -> None:
super().__init__(parent)
self.setWindowTitle('Create Project')
self.setWindowIcon(QIcon(":/icons/logo.svg"))
self.setWindowIcon(QIcon(":/icons/logo.png"))
self.file = str(Path(Settings.General().root)/'default')
self.name = '未命名'

View File

@ -49,7 +49,7 @@ class ResultTable(QtWidgets.QWidget):
else:
self.tablewidget.item(row, col).setBackground(Qt.green)
# logging
logging.info(item_idx, item_status)
# logging.info()
self.result.update({'row':item_idx, 'value':item_status})
self.no_change = False

View File

@ -36,7 +36,7 @@ class PluginLoader(QObject):
mes = inspect.getmembers(module)
for name, obj in mes:
# logging
logging.info(name, obj)
logging.info(f'{name}:{obj}')
if inspect.isclass(obj) and issubclass(obj, BasicPlugin):
info = obj.info()
break

View File

@ -16,4 +16,9 @@
点击载入数据
选择两幅不同时相的影像
4. 基本变化检测
4. 差分法检测
点击基本变化检测
点击差分法
选择图层
点击确定