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) super().__init__(parent)
self.setWindowTitle('BasicChange') self.setWindowTitle('BasicChange')
self.setWindowIcon(QIcon(":/icons/logo.svg")) self.setWindowIcon(QIcon(":/icons/logo.png"))
self.setFixedWidth(500) self.setFixedWidth(500)
@ -124,9 +124,12 @@ class BasicMethod(BasicPlugin):
out_ds.SetProjection(ds1.GetProjection()) out_ds.SetProjection(ds1.GetProjection())
max_diff = 0 max_diff = 0
min_diff = math.inf min_diff = math.inf
for j in range(yblocks): for j in range(yblocks + 1):
self.message_send.emit(f'计算{j}/{yblocks}') self.message_send.emit(f'计算{j}/{yblocks}')
block_xy = (0, j * cell_size[1]) block_xy = (0, j * cell_size[1])
if block_xy[1] > ysize:
break
block_size = (xsize, cell_size[1]) block_size = (xsize, cell_size[1])
if block_xy[1] + block_size[1] > ysize: if block_xy[1] + block_size[1] > ysize:
block_size = (xsize, ysize - block_xy[1]) block_size = (xsize, ysize - block_xy[1])
@ -141,7 +144,7 @@ class BasicMethod(BasicPlugin):
block_diff = block_diff.astype(np.float32) block_diff = block_diff.astype(np.float32)
block_diff = np.abs(block_diff) 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()) max_diff = max(max_diff, block_diff.max())
out_ds.GetRasterBand(1).WriteArray(block_diff, *block_xy) out_ds.GetRasterBand(1).WriteArray(block_diff, *block_xy)
@ -152,11 +155,15 @@ class BasicMethod(BasicPlugin):
self.message_send.emit('归一化概率中...') self.message_send.emit('归一化概率中...')
temp_in_ds = gdal.Open(out_tif) 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 = 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) 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]) block_xy = (0, j * cell_size[1])
if block_xy[1] > ysize:
break
block_size = (xsize, cell_size[1]) block_size = (xsize, cell_size[1])
if block_xy[1] + block_size[1] > ysize: if block_xy[1] + block_size[1] > ysize:
block_size = (xsize, ysize - block_xy[1]) 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 - min_diff) / (max_diff - min_diff) * 255
block_data = block_data.astype(np.uint8) block_data = block_data.astype(np.uint8)
out_normal_ds.GetRasterBand(1).WriteArray(block_data, *block_xy) 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 hist += hist_t
print(hist)
del temp_in_ds
try:
os.remove(out_tif)
except:
pass
self.gap = OTSU(hist) self.gap = OTSU(hist)
self.message_send.emit('OTSU' + str(self.gap)) self.message_send.emit('OTSU' + str(self.gap))

View File

@ -22,7 +22,7 @@ class ExportDialog(QDialog):
for layer in Project().layers.values(): for layer in Project().layers.values():
for result_layer in layer.results: for result_layer in layer.results:
if result_layer.layer_type == ResultLayer.POINT: 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): for i in range(result_layer_select.count() - 1):
result_layer_select.setItemIcon(i + 1, QIcon(":/icons/layer.png")) 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.plugins.loader import PluginLoader
from rscder.utils import Settings from rscder.utils import Settings
from rscder.utils.project import Project from rscder.utils.project import Project
from rscder.gui.layercombox import LayerCombox
class MainWindow(QMainWindow): class MainWindow(QMainWindow):
def __init__(self, parent=None, **kargs): def __init__(self, parent=None, **kargs):

View File

@ -9,7 +9,7 @@ class Create(QDialog):
def __init__(self, parent=None) -> None: def __init__(self, parent=None) -> None:
super().__init__(parent) super().__init__(parent)
self.setWindowTitle('Create Project') 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.file = str(Path(Settings.General().root)/'default')
self.name = '未命名' self.name = '未命名'

View File

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

View File

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

View File

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