Compare commits

...

2 Commits

Author SHA1 Message Date
7921e21750 fix: step4 采样点过密 — 提高自适应下限 + 默认关闭自适应模式
问题: min_interval=10 导致每个水面产生数千个密集采样点 (8242点)

修复:
  1. sampling.py: min_interval 默认值 10→50 (提高 5×)
     两个入口函数同步修改 (chunked + full)
  2. step4_sampling_panel.py: 自适应采样复选框默认 False
     用户设置的固定间隔 (interval=100px) 真正生效
2026-07-08 16:03:42 +08:00
197f58c187 fix: step12 图像预览横向滚动条被挤出视口底部
根因: QScrollArea.setWidgetResizable(True) 强制 QLabel 填充视口,
  与缩放后 QLabel 的 pixmap 固有尺寸冲突,滚动条布局异常。

修复:
  1. setWidgetResizable(False) — QLabel 保持 pixmap 自然尺寸
  2. QScrollArea SizePolicy → Expanding×Expanding (受父布局约束)
  3. ScrollBarPolicy → AsNeeded (显式设置)
  4. QLabel SizePolicy → Ignored (按内容自适应大小)

缩放行为:
  - 放大超出视口 → 自动出现滚动条
  - 缩小/适应窗口 → QLabel 自动缩至 pixmap 尺寸, 无滚动条
2026-07-08 15:24:44 +08:00
3 changed files with 11 additions and 5 deletions

View File

@ -978,12 +978,18 @@ class ImageViewerWidget(QWidget):
layout.addLayout(toolbar)
self.scroll_area = QScrollArea()
self.scroll_area.setWidgetResizable(True)
# setWidgetResizable(False): QLabel 保持自身 pixmap 固有尺寸,
# 放大时自然超出视口触发滚动条,而非被 QScrollArea 强制压缩
self.scroll_area.setWidgetResizable(False)
self.scroll_area.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.scroll_area.setStyleSheet("background-color: white;")
self.image_label = QLabel()
self.image_label.setAlignment(Qt.AlignCenter)
self.image_label.setStyleSheet("background-color: white;")
self.image_label.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
self.image_label.setStyleSheet("background-color: white;")
self.scroll_area.setWidget(self.image_label)

View File

@ -130,7 +130,7 @@ class Step4SamplingPanel(QWidget):
params_layout.addRow("内存处理块大小:", w3)
self.use_adaptive_sampling = QCheckBox("启用自适应边缘采样")
self.use_adaptive_sampling.setChecked(True)
self.use_adaptive_sampling.setChecked(False)
params_layout.addRow("智能模式:", self.use_adaptive_sampling)
params_group.setLayout(params_layout)

View File

@ -86,7 +86,7 @@ def get_wavelengths_from_bil_header(bil_file):
def get_spectral_sampling_points_chunked(bil_file, water_mask_shp, severe_glint=None, output_csvpath=None,
interval=100, sample_radius=1, chunk_size=1000,
use_adaptive_sampling=True, min_interval=10, max_interval=200):
use_adaptive_sampling=True, min_interval=50, max_interval=200):
"""
基于bil文件、shp格式water_mask和severe_glint生成采样点并提取光谱数据(分块处理版本)
@ -423,7 +423,7 @@ def get_spectral_sampling_points_chunked(bil_file, water_mask_shp, severe_glint=
def get_spectral_sampling_points(bil_file, water_mask_shp, severe_glint=None, output_csvpath=None,
interval=100, sample_radius=1,
use_adaptive_sampling=True, min_interval=10, max_interval=200):
use_adaptive_sampling=True, min_interval=50, max_interval=200):
"""
基于bil文件、shp格式water_mask和severe_glint生成采样点并提取光谱数据