news 2026/4/30 23:43:56

CreateBFont 2D图像的高斯平滑并转化为3D几何体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CreateBFont 2D图像的高斯平滑并转化为3D几何体

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①vtkImageDataGeometryFilter结构化图像数据转换为几何数据


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOImage import vtkPNMReader from vtkmodules.vtkImagingGeneral import vtkImageGaussianSmooth from vtkmodules.vtkFiltersGeometry import vtkImageDataGeometryFilter from vtkmodules.vtkFiltersCore import vtkClipPolyData from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() fileName = "Data/B.pgm" ren1 = vtkRenderer() renWin = vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) imageIn = vtkPNMReader() imageIn.SetFileName(fileName) """ vtkImageGaussianSmooth 对图像或体数据进行高斯平滑,用来降噪、平滑梯度等 """ gaussian = vtkImageGaussianSmooth() gaussian.SetInputConnection(imageIn.GetOutputPort()) gaussian.SetStandardDeviations(2, 2) # 设置高斯核在每个维度上的标准差,σ值越大,高斯核越宽,平滑的强度就越大,图像越模糊 gaussian.SetDimensionality(2) # 告知过滤器,正在处理一个二维图像,忽略Z维度存在 gaussian.SetRadiusFactors(1, 1) # 设置高斯平滑操作的计算范围 """ vtkImageDataGeometryFilter 把结构化图像数据 (vtkImageData) 转换成几何数据 (vtkPolyData),以便可视化或进一步几何处理 """ geometry = vtkImageDataGeometryFilter() geometry.SetInputConnection(gaussian.GetOutputPort()) """ 高斯平滑的2D图像转换成的3D平面多边形数据。这个平面上的每个点都带有一个标量值(原始图像的像素强度) """ aClipper = vtkClipPolyData() aClipper.SetInputConnection(geometry.GetOutputPort()) aClipper.SetValue(127.5) # 大于127.5的部分被保留,小于127.5的部分被丢弃 aClipper.InsideOutOn() # 翻转裁剪逻辑 aClipper.GenerateClipScalarsOff() # 禁用生成新的剪裁标量 aClipper.GetOutput().GetPointData().CopyScalarsOff() aClipper.Update() mapper = vtkPolyDataMapper() mapper.SetInputConnection(aClipper.GetOutputPort()) mapper.ScalarVisibilityOff() letter = vtkActor() letter.SetMapper(mapper) ren1.AddActor(letter) letter.GetProperty().SetDiffuseColor(colors.GetColor3d("LampBlack")) letter.GetProperty().SetRepresentationToWireframe() ren1.SetBackground(colors.GetColor3d("WhiteSmoke")) ren1.ResetCamera() ren1.GetActiveCamera().Dolly(1.2) ren1.ResetCameraClippingRange() renWin.SetSize(640, 480) renWin.SetWindowName('CreateBFont') renWin.Render() iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 19:09:56

DisplacementPlot 结构动态可视化

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpVector 根据向量场对几何体进行形…

作者头像 李华
网站建设 2026/4/3 3:22:24

ExponentialCosine 复杂的二维数学函数映射为3D曲面

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpScalar根据标量值沿着发现方向进行…

作者头像 李华
网站建设 2026/4/18 3:45:01

HardwareSelector 单元网格面鼠标选择

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkHardwareSelector网格面的UI交互选择 …

作者头像 李华
网站建设 2026/4/18 0:39:22

ResNet18实战:智能监控系统物体识别部署案例

ResNet18实战:智能监控系统物体识别部署案例 1. 引言:通用物体识别的工程价值与ResNet-18的定位 在智能监控、安防预警、行为分析等实际场景中,通用物体识别是构建视觉感知能力的基础环节。传统方案依赖人工规则或轻量级分类器,…

作者头像 李华
网站建设 2026/4/17 18:23:11

ResNet18优化实战:推理吞吐量提升

ResNet18优化实战:推理吞吐量提升 1. 背景与挑战:通用物体识别中的性能瓶颈 在AI应用落地过程中,模型的稳定性和推理效率是决定用户体验的核心因素。基于TorchVision官方实现的ResNet-18模型因其轻量、稳定、泛化能力强,广泛应用…

作者头像 李华
网站建设 2026/4/25 10:15:36

ResNet18实战教程:工业缺陷检测系统搭建指南

ResNet18实战教程:工业缺陷检测系统搭建指南 1. 引言:从通用识别到工业场景的迁移价值 1.1 通用物体识别为何能用于工业缺陷检测? 在智能制造与自动化质检领域,传统机器视觉依赖规则化图像处理(如边缘检测、模板匹配…

作者头像 李华