2014-11-05 60 views
0

当从Matlab提示调用OCR软件OCRopus直接,有一系列的错误时,该软件是从shell提示符下直接调用,将​​不会出现:如何从Matlab调用OCRopus软件或任何冲突软件?

>> ! gnome-terminal -x bash ./sampleBash.sh 

Traceback (most recent call last): 
    File "/usr/local/bin/ocropus-gpageseg", line 15, in <module> 
    from pylab import * 
    File "/usr/lib/pymodules/python2.7/pylab.py", line 1, in <module> 
    from matplotlib.pylab import * 
    File "/usr/lib/pymodules/python2.7/matplotlib/__init__.py", line 156, in <module> 
    from matplotlib.cbook import is_string_like 
    File "/usr/lib/pymodules/python2.7/matplotlib/cbook.py", line 28, in <module> 
    import numpy as np 
    File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 153, in <module> 
    from . import add_newdocs 
    File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 18, in <module> 
    from .polynomial import * 
    File "/usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py", line 19, in <module> 
    from numpy.linalg import eigvals, lstsq, inv 
    File "/usr/lib/python2.7/dist-packages/numpy/linalg/__init__.py", line 50, in <module> 
    from .linalg import * 
    File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 29, in <module> 
    from numpy.linalg import lapack_lite, _umath_linalg 
ImportError: /opt/MATLAB/R2012b/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3) 

其中sampleBash.sh是:

#!/bin/bash -e 

FILENAME='testfile.png' 
ocropus-gpageseg --usefilename "$FILENAME" 

$SHELL 

似乎Matlab的环境变量与系统bash shell的环境变量之间有冲突。关于如何发送'clean'shell环境到OCRopus软件(或任何其他类似软件)的想法?

这不仅限于OCRopus调用,而且任何与在Matlab中调用shell的过程中设置的Matlab环境变量冲突的软件都会面临同样的问题。

谢谢。

+1

仅供参考,计算机视觉系统工具箱具有内置'ocr'功能。 – Dima 2014-11-12 19:19:52

+0

谢谢@迪玛。然而,这个问题的主要目的是如何处理来自Matlab内部的调用软件,当它们与Matlab shell-call的环境设置发生冲突时。我会编辑这个问题来强调这一点。 – imriss 2014-11-13 13:23:24

回答

0

一个不那么干净的解决方案可能是调用OCRopus软件之前删除争食变量:

>> ! gnome-terminal -x bash unset OSG_LD_LIBRARY_PATH; unset XAPPLRESDIR; unset XKEYSYMDB; unset LD_LIBRARY_PATH; unset TOOLBOX; unset XFILESEARCHPATH; unset BASEMATLABPATH; ./sampleBash.sh 

这样,变量,如OSG_LD_LIBRARY_PATH呼叫的OCR软件之前从环境中除去。