"When I manually apply the filter between 0 and 2, many points appear to be selected, but when automated, only 4 are estimated. Why does this happen?
2025-01-02 16:21:54 SelectPoints: point_cloud = 4
2025-01-02 16:21:54 Selecting points...
2025-01-02 16:21:55 Finished processing in 0.902 sec (exit code 1)
2025-01-02 16:21:55 Finished processing in 0.001 sec (exit code 0)
2025-01-02 16:21:55 Error applying the confidence filter: Null point cloud selection"
import Metashape
def filter_by_confidence(min_confidence=1, max_confidence=2):
# Acessar o documento atual
doc = Metashape.app.document
# Verificar se existem chunks no projeto
if not doc.chunks:
print("Nenhum chunk encontrado no projeto.")
return
chunk = doc.chunk
if not chunk:
print("Nenhum chunk ativo.")
return
if not chunk.point_cloud:
print("Nenhuma nuvem de pontos ativa.")
return
point_cloud = chunk.point_cloud
# Verificar se o atributo 'setConfidenceFilter' existe
if not hasattr(point_cloud, 'setConfidenceFilter'):
print("Atributo 'setConfidenceFilter' não está disponível na nuvem de pontos.")
return
# Verificar e obter as câmeras habilitadas no chunk
cameras = [camera for camera in chunk.cameras if camera.enabled]
if not cameras:
print("Nenhuma câmera habilitada encontrada.")
return
# Aplicar o filtro de confiança
try:
# Configurar o filtro de confiança
point_cloud.setConfidenceFilter(min_confidence, max_confidence)
# Selecionar pontos fora do intervalo de confiança
point_cloud.selectMaskedPoints(cameras)
# Remover os pontos selecionados
point_cloud.removeSelectedPoints()
print(f"Pontos com confiança fora do intervalo [{min_confidence}, {max_confidence}] foram removidos.")
except Exception as e:
print(f"Erro ao aplicar o filtro de confiança: {e}")
# Exemplo de uso
filter_by_confidence(min_confidence=1, max_confidence=2)