必要なライブラリをインストール
pip3 install pyqt5
pip3 install pyqtgraph
PythonでGUIをつくるライブラリや3Dを表示するライブラリはいろいろありますが、今回は
pyqt5(GUI)
pyqtgraph(3D表示)
を使います。
3Dを表示できるウィジェットを表示
画面を出す。
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtGui import QPixmap
import pyqtgraph.opengl as gl
import numpy as np
from stl import mesh # numpy-stlを使用
import cv2
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt with 3D Model")
self.setGeometry(100, 100, 800, 600)
self.widget = gl.GLViewWidget(self)
self.widget.setCameraPosition(distance=500) # カメラの距離を調整
self.widget.setGeometry(0, 0, 800, 600)
self.widget.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
黒い画面が表示される。
3Dモデルを作ってウィジェットに与える
今回はstlファイルを表示する。
def createModel(self,model_path):
# STLファイルの読み込みと3Dモデルの作成
your_mesh = mesh.Mesh.from_file(model_path) # STLファイルパス
vertices = np.array(your_mesh.vectors, dtype=np.float32)
faces = np.arange(vertices.shape[0] * 3, dtype=np.uint32).reshape(vertices.shape[0], 3)
model = gl.GLMeshItem(vertexes=vertices.reshape(-1, 3), faces=faces, smooth=False, color=(1, 1, 1, 1), shader="shaded")
return model
self.model = self.createModel("cola.stl")
self.widget.addItem(self.model)
これで3Dモデルが表示され、マウスドラッグで回転させられる。
🐣
フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。
もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…
いずれも中間コストを省いたリーズナブルな価格でお請けできます。
お仕事のご相談はこちらまで
rockyshikoku@gmail.com
機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。