2010-12-11 7 views
8

Was ist eine gute Plattform für ein Web-basiertes Projekt, das Bildverarbeitung unter Verwendung OpenCV Bibliothek tut? Ich fand Wt (http://www.webtoolkit.eu/wt).C++ Web-Projekt mit OpenCV mit Wt

Kann ich OpenCV mit Wt verwenden? Gibt es bessere Alternativen zu Wt?

Anforderungen:

Eine Anmeldeseite GUI Dokumente hochladen, ausgewählte Bereiche auf dem Bild, Handschrift Wort/Linienerkennung OpenCV

Antwort

4

ich verwendet habe, Wt in der Vergangenheit, ist es sehr nützlich, wenn auch sperrig. Es hat etwas damit zu tun, dass eine Vielzahl von Webbrowsern unterstützt werden muss. In einigen Fällen ist dies eine Funktion.

Wenn Sie mehr von einer close-to-Metall-Programmierer sind, würde ich PION und Umsetzung Ihrer GUI einige Ihrer Web-Authoring-Fähigkeiten empfehlen:

http://www.pion.org/projects/pion-network-library

können Sie OpenCV verwenden mit so ziemlich jede Netzwerkbibliothek da draußen. Eine gute Übersicht über Ihre Wahl ist hier auf Stackoverflow zur Verfügung:

https://stackoverflow.com/questions/175507/c-c-web-server-library

1

Ich denke, was Sie fragen, ist möglich mit Wt. Ich kann keine Probleme mit der Verknüpfung von OpenCV in WT vorhersehen, und das System ist definitiv interaktiv genug, um die von Ihnen beschriebene Funktionalität bereitzustellen. Implementieren Sie es zuerst mit serverseitigen Aktionen und optimieren Sie bei Bedarf Teile mit kleinen Bits clientseitigen JS.

0

FWIW, ist dies ein einfacher Code OpenCV Bild anzuzeigen (möglicherweise das Bild zu ändern, während die App läuft):

Wt::WMemoryResource* cvMat2res(const cv::Mat& img){ 
    std::vector<uchar> buf; 
    cv::imencode(".png",img,buf); // by default, the fastest compression 
    auto ret=new Wt::WMemoryResource(this); 
    ret->setMimeType("mime/png"); 
    ret->setData(buf); // data is copied here 
    return ret; 
} 

/* ... */ 
auto img=new Wt::Image(); 
root()->addWidget(img); 
Wt::WMemoryResource* imgRes=nullptr; 

/* set image data; this can be done also in event handler and the image updates itself automatically from the new resource */ 
if(imgRes) delete imgRes; 
imgRes=cvMat2res(cvImage); 
img->setImageLink(imgRes);