我正在使用CL-SOM-AM57x-TI AM5728 / AM5718模块化系统,并使用基于Linux Debian的Ti矩阵应用启动器加载它。我正在尝试开发可从TI Matrix GUI启动的python应用程序。使用简单的python代码,该应用程序可以在终端中正常运行(加载并导入openCV和numpy),但是当我从TI矩阵GUI启动并运行该应用程序(已创建图标并正在执行该应用程序)时,该矩阵无法正常工作并显示一些错误/终端中的警告。该应用程序正在打开并在屏幕上显示值,但看起来像OpenCV模块,并且numpy无法加载或正常工作。
所以问题在于,相同的代码在Terminal上有效,但在从TI矩阵GUI的应用程序中启动时则无效。
示例代码:
import numpy as np
import cv2
img = cv2.imread('rgb.jpg')
np_image = np.array(img)
num_list = np_image.tolist()
str1 =str(num_list)
print( len(str1))
print(str1)
Shell脚本 #!/ bin / bash
/usr/bin/python2.7 /usr/share/matrix-gui-2.0/apps/ex_application/1.py
终端错误:
[6860.067644] omap_hwmod:mmu0_dsp2:_wait_target_disable失败
[6860.073549] omap-iommu 41501000.mmu:41501000.mmu:3.0版
[6860.079683] omap-iommu 41502000.mmu:41502000.mmu:3.0版
[6860.093489] omap_hwmod:mmu0_dsp1:_wait_target_disable失败
[6860.099385] omap-iommu 40d01000.mmu:40d01000.mmu:3.0版
[6860.105342] omap-iommu 40d02000.mmu:40d02000.mmu:3.0版
[6870.136544] omap_hwmod:mmu1_dsp1:_wait_target_disable失败
[6870.149842] omap_hwmod:mmu0_dsp1:_wait_target_disable失败
[6870.163511] omap_hwmod:mmu1_dsp2:_wait_target_disable失败
[6870.176696] omap_hwmod:mmu0_dsp2:_wait_target_disable失败
应用程序的输出:
4
None
但是,如果P在终端中运行相同的代码,则使用同一块板就可以正常工作,并且输出会给出一个数组矩阵。我需要在矩阵GUI中的一个应用程序上运行它,并希望获得与输出相同的数组。 有什么建议吗?
答案 0 :(得分:0)
您对代码的期望感到困惑。 result[0][0].total
已 为img
。创建相同的副本会使内存增加一倍。 (您可以通过从Python REPL执行np.ndarray
来验证它是否相同。它应该响应np.all(img == np_image)
。)将其中之一转换为Python True
会消耗更多的内存,并进行转换将Python列表转换为字符串会引起很多麻烦。
我不熟悉您使用的主板,但是快速搜索表明它的RAM有限。难道您所看到的只是板上内存不足的副作用吗?
答案 1 :(得分:0)
我找到了解决方案。 “即使图像路径错误,也不会引发任何错误,但是print img不会给您任何提示。” openCV文档中提到了这一点。 所以我改变了线
img = cv2.imread('rgb.jpg')
到
img = cv2.imread('/ usr / share / matrix-gui-2.0 / apps / ex_application / rgb.jpg')
#input完整目录