我想读从我的Python脚本我leJOS的java应用程序的输出。我在执行此操作时遇到了问题,因为lejos NXT的内存很小,这意味着我尝试使用的许多库都导致Java堆错误。
到目前为止,我已经尝试使用mysql表来传输数据,但是NXT无法处理库的大小。我也尝试写入excel和xml工作表,但是由于有限的内存大小而无法再次将其放入nxt。我使用的代码确实可以正常运行,就像我尝试将其作为普通的Java应用程序运行一样。
如果您对如何解决此问题有任何想法,请告诉我,谢谢
PS继承人我使用Python代码:
base_path = os.path.dirname(os.path.realpath(__file__))
xml_file = os.path.join(base_path, "C:\\Users\\matth\\OneDrive\\Documents\\XML\\XMLCarrier.xml")
tree = et.parse(xml_file)
root = tree.getroot()
img = cv2.imread("lines.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 75, 150)
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 30, maxLineGap=250)
row = 0
x = 0
i = 0
for x1, y1, x2, y2 in lines[x]:
x = x + 1
cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 3)
text = "{}, {}".format((x1,y1),(x2,y2))
print(text)
new_product = et.SubElement(root, "coordinate", attrib={"id": str(i)})
cx1 = et.SubElement(new_product, "x1")
cy1 = et.SubElement(new_product, "y1")
cx2 = et.SubElement(new_product, "x2")
cy2 = et.SubElement(new_product, "y2")
cx1.text = str(x1)
cy1.text = str(y1)
cx2.text = str(x2)
cy2.text = str(y2)
i = i + 1
tree.write(xml_file)
for child in root:
print(child.tag, child.attrib)