打开CV-无法执行具有cv2的python代码

时间:2018-10-27 10:39:49

标签: cv2

我正在使用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中的一个应用程序上运行它,并希望获得与输出相同的数组。 有什么建议吗?

2 个答案:

答案 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完整目录