我居然遇到了下列OpenCV的樣品麻煩:在opencv2.4.5使用createButton(Qt的GUI功能)段錯誤
http://docs.opencv.org/2.4.5/modules/highgui/doc/qt_new_functions.html
(我更新的路徑爲我的ENV &添加的回調函數不在樣本中)。
我編譯opencv的設置的Qt在:
GUI: -- QT 4.x: YES (ver 4.8.2 EDITION = OpenSource) -- QT OpenGL support: NO -- OpenGL support: NO
當我嘗試我在Qt的文檔中發現的代碼:我有以下回溯:
(gdb) backtrace #0 0x00007ffff14f53e8 in QAction::setEnabled(bool)() from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #1 0x00007ffff67bf0db in GuiReceiver::enablePropertiesButtonEachWindow()() from /usr/local/lib/libopencv_highgui.so.2.4 #2 0x00007ffff67c02db in GuiReceiver::addButton(QString, int, int, void*, void*)() from /usr/local/lib/libopencv_highgui.so.2.4 #3 0x00007ffff67c5e9a in GuiReceiver::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)() from /usr/local/lib/libopencv_highgui.so.2.4 #4 0x00007ffff0fcef77 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const() from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #5 0x00007ffff0fd134c in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #6 0x00007ffff67b23a7 in cvCreateButton() from /usr/local/lib/libopencv_highgui.so.2.4 #7 0x0000000000400f6c in main (argc=, argv=) at main.cpp:20
有沒有人有同樣的問題? 我只是想精確地說我不想在Qt中嵌入Opencv,而只是使用由opencv提供的Qt特性。
我找到答案的開始位置: How to use cv::createButton prototype in OpenCV
但是,這是不相關的...
感謝您的幫助。
仍然有一些問題存在的一段代碼:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
void callbackButton(int state, void* userdata){}
int main(int ac, char **av){
namedWindow("main1",CV_WINDOW_NORMAL);
namedWindow("main2",CV_WINDOW_AUTOSIZE | CV_GUI_NORMAL);
int a = 0;
createButton("test",callbackButton, &a, CV_CHECKBOX,1);
return 0;
}
我已經嘗試CV_GUI_EXPANDED沒有效果...感謝您的建議。 – Poko 2013-06-10 10:42:05