Ale*_*dar 13 python user-interface pyqt4 openalpr
我尝试用PyQt和openalpr构建一个GUI应用程序,但是我的代码存在问题.一个简单的例子:
from openalpr import Alpr
from PyQt4 import QtCore, QtGui
class AnalizePlate(object):
def __init__(self):
self.alpr = None
try:
self.alpr = Alpr("eu", "/etc/openalpr/openalpr.conf", "/usr/share/openalpr/runtime_data")
if not self.alpr.is_loaded():
print("Error loading OpenALPR")
except:
print "Error"
def proccess(self):
self.alpr.set_top_n(7)
self.alpr.set_default_region("md")
results = self.alpr.recognize_file("/tmp/1487428945.14.jpg")
print results
a = AnalizePlate()
a.proccess()
Run Code Online (Sandbox Code Playgroud)
上面的代码就像一个魅力,但如果涉及到GUI,就会出现奇怪的行为.
from openalpr import Alpr
from PyQt4 import QtCore, QtGui
class AnalizePlate(object):
def __init__(self):
self.alpr = None
try:
self.alpr = Alpr("eu", "/etc/openalpr/openalpr.conf", "/usr/share/openalpr/runtime_data")
if not self.alpr.is_loaded():
print("Error loading OpenALPR")
except:
print "Error"
def proccess(self):
self.alpr.set_top_n(7)
self.alpr.set_default_region("md")
results = self.alpr.recognize_file("/tmp/1487428945.14.jpg")
print results
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.resize(1198, 651)
self.analize = AnalizePlate()
self.analize.proccess()
QtCore.QMetaObject.connectSlotsByName(self)
if __name__ == "__main__":
import sys
import sip
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
这是一个基本的例子,但错误仍然存在.试图openalpr
直接实现代码Window
没有运气.所以基本上,如果没有gui,代码就可以了.使用openALPR version 2.2.4
和PyQT4
.另外,检查图像,它就在那里.当recognize_array()
使用而不是使用时同样适用recognize file
.我得到的错误是:
OpenCV错误:在detectMultiScale中断言失败(scaleFactor> 1 && image.depth()== CV_8U),文件/build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/objdetect/src/cascadedetect.cpp,第1081行OpenALPR中的捕获异常识别:/build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/objdetect/src/cascadedetect.cpp:1081:错误:(-215)scaleFactor> 1 && image.depth()== CV_8U函数detectMultiScale
回溯(最近一次调用最后一次):文件"analize.py",第39行,在window = Window()文件"analize.py",第31行,在init self.analize.proccess()文件"analize.py"中,第22行,在proccess results = self.alpr.recognize_file("/ tmp/1487428945.14.jpg")文件"/usr/lib/python2.7/dist-packages/openalpr/openalpr.py",第132行,在recogn_file response_obj中= json.loads(json_data)文件"/usr/lib/python2.7/json/ INIT py"为,线339,在负荷返回_default_decoder.decode(一个或多个)文件"/usr/lib/python2.7/json/ decoder.py",第364行,在解码obj中,end = self.raw_decode(s,idx = _w(s,0).end())文件"/usr/lib/python2.7/json/decoder.py" ,第380行,在raw_decode obj中,end = self.scan_once(s,idx)ValueError:期望属性名称:第1行第122列(字符121)
可能是DPI感知的问题。您可能需要在http://doc.qt.io/qt-5/highdpi.html上查看Qt 中的高 DPI 支持。另外,如果您愿意将 Qt 更新到 5.6,这可能会有所帮助/sf/answers/2524116941/
归档时间: |
|
查看次数: |
924 次 |
最近记录: |