①多个STL格式文件合并
【1】确保你已经安装了VTK库。如果没有安装,可以使用以下命令安装:
pip install vtk
【2】使用VTK库来合并多个STL文件,并将它们加载到一个VTK场景中,在程序中进行交互式操作,单独选中每个模型♥
import vtk
import os
def merge_stl_files(input_files):
# 创建一个合并过滤器
append_filter = vtk.vtkAppendPolyData()
for stl_file in input_files:
# 检查文件是否存在
if not os.path.exists(stl_file):
print(f"文件 {stl_file} 不存在,跳过该文件。")
continue
# 读取STL文件
reader = vtk.vtkSTLReader()
reader.SetFileName(stl_file)
reader.Update()
# 添加到合并过滤器中
append_filter.AddInputData(reader.GetOutput())
# 更新合并过滤器
append_filter.Update()
return append_filter.GetOutput()
def main():
# 示例使用
input_files = [
"C:/pycharm-project/project1/STL/ARM_1.stl",
"C:/pycharm-project/project1/STL/ARM_2.stl",
"C:/pycharm-project/project1/STL/ARM_3.stl",
"C:/pycharm-project/project1/STL/ARM_4.stl",
"C:/pycharm-project/project1/STL/HAND.stl"
]
# 合并STL文件
merged_polydata = merge_stl_files(input_files)
# 创建一个渲染器和渲染窗口
renderer = vtk.vtkRenderer()
render_window = vtk.vtkRenderWindow()
render_window.AddRenderer(renderer)
# 创建一个交互器
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(render_window)
# 创建一个Mapper和Actor
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(merged_polydata)
actor = vtk.vtkActor()
actor.SetMapper(mapper)
# 将Actor添加到渲染器中
renderer.AddActor(actor)
renderer.SetBackground(0.1, 0.2, 0.4)
# 启动交互式窗口
render_window.Render()
interactor.Start()
if __name__ == "__main__":
main()
该代码义了一个merge_stl_files
函数来合并多个STL文件并返回合并后的PolyData对象。然后,在main
函数中,将合并后的PolyData加载到了VTK渲染器中,并添加了一个交互器,这样就可以在渲染窗口中进行交互操作♥
♥☆♥☆♥☆♥☆♥☆♥☆
②九格切图
该Python 脚本,它使用 PIL
(Python Imaging Library) 库加载一张图片,并将其切割成九份后保存。这些图片分别命名为 0.jpg
, 1.jpg
, 2.jpg
, 3.jpg
, 4.jpg
, 5.jpg
, 6.jpg
, 7.jpg
, 8.jpg
,并保存在指定的路径下。
【1】确保已安装 PIL
库(在 Pillow 中)
pip install Pillow
【2】
使用说明:
- 将
image_path
替换为你要处理的图片的路径。 - 将
save_dir
替换为你想保存切割后图片的目录路径。
运行该脚本后,它会在指定的目录下生成 0 到 8 共九张图片,每张图片是原图的一个九宫格部分。
from PIL import Image
import os
def cut_image_into_nine(image_path, save_dir):
# 打开图像
img = Image.open(image_path)
# 获取图像尺寸
width, height = img.size
# 计算每个小块的宽度和高度
chunk_width = width // 3
chunk_height = height // 3
# 创建保存目录(如果不存在)
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 切割并保存图像
index = 0
for i in range(3):
for j in range(3):
left = j * chunk_width
top = i * chunk_height
right = (j + 1) * chunk_width
bottom = (i + 1) * chunk_height
# 裁剪图像
img_chunk = img.crop((left, top, right, bottom))
# 构建文件名并保存
file_name = f"{index}.jpg"
file_path = os.path.join(save_dir, file_name)
img_chunk.save(file_path)
index += 1
# 示例用法
image_path = 'C:\\pycharm-project\\project1\\九格切图\\45.jpg' # 替换为你的图片路径
save_dir = 'C:\pycharm-project\project1\九格切图' # 替换为你想保存图片的目录
cut_image_into_nine(image_path, save_dir)
♥☆♥☆♥☆♥☆♥☆♥☆