我需要从我以不同格式存储的网格中绘制表面三角形,例如xyz或stl。我的最终目的是创建一个带有三角形的二进制图像,以便能够覆盖我已经在另一个python脚本中生成的其他图像。
我不知道什么是最好的方法。使用numpy-stl模块可以提取向量和点,但是我无法生成opencv代码。我试过折线。
这些是我的文件。
Stl - https://dl.dropboxusercontent.com/u/7 ...
xyz - https://dl.dropboxusercontent.com/u/7 ...
我使用opencv做了一些代码而没有任何成功。
import numpy as np
from stl import mesh
#import stl
from mpl_toolkits import mplot3d
from matplotlib import pyplot
import cv2
if __name__ == '__main__':
your_mesh = mesh.Mesh.from_file('stlMidpoint.stl')
img= cv2.imread('nimg.jpg') #an image with the same size, and I'll use the mesh-mask on this image
imgMask = np.ones(img.shape[:2], dtype="uint8")*255
m_img= np.ones(imgMask.shape, dtype="uint8") * 255
points = np.array(your_mesh.vectors[0,:,:])
cv2.polylines( m_img,[points], 1, (255,255,255))
cv2.imwrite('meshTri.jpg', m_img)