对于使用OpenCV库进行图像处理的基于 Web 的项目,什么是一个好的平台?我找到了 Wt ( http://www.webtoolkit.eu/wt )。
我可以将OpenCV与 Wt 一起使用吗?Wt 有更好的替代品吗?
要求:
用于上传文档、选择图像区域、使用OpenCV进行手写字/行检测的登录页面 GUI
对于使用OpenCV库进行图像处理的基于 Web 的项目,什么是一个好的平台?我找到了 Wt ( http://www.webtoolkit.eu/wt )。
我可以将OpenCV与 Wt 一起使用吗?Wt 有更好的替代品吗?
要求:
用于上传文档、选择图像区域、使用OpenCV进行手写字/行检测的登录页面 GUI
我过去使用过 Wt,它非常有用,虽然体积很大。它的臃肿与必须支持各种各样的网络浏览器有关,因此在某些情况下它是一项功能。
如果您更像是一个接近金属的程序员,我会推荐 PION,并使用您的一些 Web 创作技能来实现您的 GUI:
http://www.pion.org/projects/pion-network-library
您可以将 OpenCV 与几乎任何网络库一起使用。StackOverflow 上对您的选择进行了很好的回顾:
https://stackoverflow.com/questions/175507/cc-web-server-library
我认为 Wt 可以满足您的要求。我无法预见在 Wt 中链接 OpenCV 会出现问题,而且该系统的交互性绝对足以提供您描述的功能。首先使用服务器端操作来实现它,如果需要,您仍然可以使用少量客户端 JS 来优化部分。
FWIW,这是一个显示 OpenCV 图像的简单代码(可能在应用程序运行时更改图像):
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);