У меня есть сетка в СТЛ файл (https://dl.dropboxusercontent.com/u/710615/stlMidpoint.stl)OpenCV питона треугольные сетки, имеющие координаты
С помощью этого кода:
from stl import mesh
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cv2
def unique(a):
order = np.lexsort(a.T)
a = a[order]
diff = np.diff(a, axis=0)
ui = np.ones(len(a), 'bool')
ui[1:] = (diff != 0).any(axis=1)
return a[ui]
A = np.loadtxt("vectors.txt")
A = A[np.logical_not(A[:,2] > 0)]
uniqA = unique(A)
coordA = A[:,0:2]
Я могу получить координаты которых есть соответствие (я думаю) к точкам поверхности треугольников. Я пытаюсь нарисовать треугольники без успеха. Точки есть, но не в формате треугольников. Я использую polines:
img= cv2.imread('nimg.jpg')
imgMask = np.ones(img.shape[:2], dtype="uint8")*255
m_xor= np.ones(imgMask.shape, dtype="uint8") * 255
points = np.array(uniqA[:,0:2], np.int32)
print points
cv2.polylines(m_xor,[points], 1, (0,0,0))
cv2.imwrite('result.jpg', m_xor)
vectors.txt: https://dl.dropboxusercontent.com/u/710615/vectors.txt
nimg: https://dl.dropboxusercontent.com/u/710615/nimg.jpg
Как экспортировать в Numpy вектор и overtlay в других изображениях? Например, как я могу применить эту сетку на этом изображении https://dl.dropboxusercontent.com/u/710615/La1.png , например. Извлечение массива numpy с использованием matplotlib Я получу точки, а не треугольники. – marco
Вы можете использовать 'figure.savefig ('image.png', dpi = ...)' для хранения изображения в качестве изображения с высоким разрешением. Или используйте 'fig.canvas' для прямого доступа к данным. Фактически вектор уже доступен с помощью 'your_mesh.vectors [:,:,: 2]' – Wolph
Знаете ли вы способ рисования в другом контексте, отличном от matplotlib? – marco