Я использую vtkPolyDataEdgeConnectivityFilter для сегментации сетки на основе выбранных краев. После получения сегментации я запускаю vtkSmallRegionGrow. На этом этапе я хотел бы применить vtkLargeRegionGrow к новым регионам, определенным SmallRegionGrow. Для этого мне нужны новые ребра, определяющие границы регионов, найденных SmallRegionGrow. Сейчас я извлекаю эти ребра вручную, но это значительно увеличивает время выполнения. Есть ли способ заставить фильтр напрямую возвращать эти края в VTK?
Я работаю в Python 3.12, используя pyvista 0.44.1 и vtk 9.3.1.
feature_edges = PolyData(mesh.points, lines=edges.reshape(-1))
f = vtkPolyDataEdgeConnectivityFilter()
f.SetExtractionModeToAllRegions()
f.SetColorRegions(True)
f.SetInputData(mesh)
f.BarrierEdgesOn()
f.SetBarrierEdges(True)
f.SetSourceData(feature_edges)
f.Update()
f.SetLargeRegionThreshold(sml_thr)
f.GrowSmallRegionsOn()
f.Update()
f.SetSourceData(newborders(mesh)
f.SetLargeRegionThreshold(lrg_thr)
f.GrowLargeRegionsOn()
f.Update()
def newborders(mesh):
edges = []
for i in range(mesh.n_cells):
for j in range(len(mesh.cell_neighbors(i,'edges'))):
if mesh['RegionId'] != mesh['RegionId'][mesh.cell_neighbors(i,'edges')[j]]:
edge = np.intersect1d(mesh.get_cell(i).point_ids,mesh.get_cell(mesh.cell_neighbors(i,'edges')[j]).point_ids)
edges.append([2 , edge[0], edge[1]])
return np.array(edges)
Подробнее здесь: https://stackoverflow.com/questions/792 ... iongrowing
VtkPolyDataEdgeConnectivityFilter: обновлять границы после Large/SmallRegionGrowing ⇐ Python
Программы на Python
1732830723
Anonymous
Я использую vtkPolyDataEdgeConnectivityFilter для сегментации сетки на основе выбранных краев. После получения сегментации я запускаю vtkSmallRegionGrow. На этом этапе я хотел бы применить vtkLargeRegionGrow к новым регионам, определенным SmallRegionGrow. Для этого мне нужны новые ребра, определяющие границы регионов, найденных SmallRegionGrow. Сейчас я извлекаю эти ребра вручную, но это значительно увеличивает время выполнения. Есть ли способ заставить фильтр напрямую возвращать эти края в VTK?
Я работаю в Python 3.12, используя pyvista 0.44.1 и vtk 9.3.1.
feature_edges = PolyData(mesh.points, lines=edges.reshape(-1))
f = vtkPolyDataEdgeConnectivityFilter()
f.SetExtractionModeToAllRegions()
f.SetColorRegions(True)
f.SetInputData(mesh)
f.BarrierEdgesOn()
f.SetBarrierEdges(True)
f.SetSourceData(feature_edges)
f.Update()
f.SetLargeRegionThreshold(sml_thr)
f.GrowSmallRegionsOn()
f.Update()
f.SetSourceData(newborders(mesh)
f.SetLargeRegionThreshold(lrg_thr)
f.GrowLargeRegionsOn()
f.Update()
def newborders(mesh):
edges = []
for i in range(mesh.n_cells):
for j in range(len(mesh.cell_neighbors(i,'edges'))):
if mesh['RegionId'][i] != mesh['RegionId'][mesh.cell_neighbors(i,'edges')[j]]:
edge = np.intersect1d(mesh.get_cell(i).point_ids,mesh.get_cell(mesh.cell_neighbors(i,'edges')[j]).point_ids)
edges.append([2 , edge[0], edge[1]])
return np.array(edges)
Подробнее здесь: [url]https://stackoverflow.com/questions/79233780/vtkpolydataedgeconnectivityfilter-update-borders-after-large-smallregiongrowing[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия