所以,我想编写一个程序,使OpenCV的处理输出被视为WebCam.我想用它为像Skype这样的程序创建效果.我被困住了,谷歌搜索没有帮助.请帮我.我需要为此获得一个驱动程序吗?如何存储为AVI并将AVI与其他应用程序一起流式传输?
我想编写一个程序来掩饰我的脸,所以当与我正在辅导但不亲自知道的人Skype上时,我不需要担心我的隐私!
顺便说一下,我对C++有点新意.但是,这是我喜欢的语言.但是,我也了解Java和Python.
您是否建议我尝试获取另一个库/集合库,例如OpenFrameworks?
我正在用C++编写OpenCV.这里是为我所有的可用平台:Ubuntu的:从OpenCV的apt-get的,与pkg配置,Qt Creator的Ubuntu的:从OpenCV的apt-get的,与pkg配置和libfreenect,Qt Creator的Windows 7中:OpenCV的2.4.8.0,最新的二进制文件,86,Visual Studio 2010所中明示的Windows 7:OpenCV中未安装Windows 8.1专业版:OpenCV的2.4.8.0,最新的二进制文件,86,Visual Studio速成2013特快桌面的Hyper-V,相同配置的Windows 7:1
我注意到有点混乱.我正在尝试使用开放式CV中的进程输出并将其发送到另一个程序,如Skype.主要目的是我要教小学儿童节目和OpenCV.我想直接输出输出,所以我不必共享我的桌面.
我正在编写一个OpenCV应用程序,而FPS非常重要.如何计算主循环的处理时间以获得当前和平均FPS?这样,我就可以知道我的应用程序运行速度有多快.顺便说一下,我正在使用imread关闭SSD,因此处理器是这里的瓶颈!
我试图找到一个段错误背后的罪魁祸首.我的调试器告诉我,错误所在的变量没有数据.每隔10秒,我的C++代码中会运行一个小脚本.它做"垃圾收集"并删除一些可能已经死亡的"会话".为了有效地执行此操作,我使用时间戳 - 上次访问数据的时间.如果数据超过10秒,那就已经死了.有一个keepalive命令在客户端上每4秒触发一次.
为了执行此GC,我遍历std :: unordered_map并从存储为该对中的值的时间中减去自纪元以来的当前时间.如果时间太大,我将它添加到一个std :: vector,它包含要删除的键(是的,我知道它可以被优化以跳过这一步).
我面临的问题是它第一次循环正确.然而,此后,我得到一个段错误,它指向迭代器值大于地图的大小.只需切换回标准的std :: map就可以解决整个问题!
我将附上完成所有这一切的功能.所有代码都可以在http://github.com/yash101/DrawingPad上找到
现在,代码[{sourcedir} /source/Session.cxx]:
void SessionHost::cron()
{
while(true)
{
std::this_thread::sleep_for(std::chrono::seconds(10));
if(DEBUG)
{
std::cout << "Cron has started!" << std::endl;
}
while(!locky_thingy.try_lock_for(std::chrono::milliseconds(MUTEX_TIMEOUT)))
{}
int timethrough = 0;
std::vector<std::string> del;
for(std::map<std::string, long>::iterator ite = timestamp.begin(); ite != timestamp.end(); ++ite)
{
timethrough++;
std::cout << "Time through: " << timethrough << std::endl;
std::string curkey = ite->first;
long curval = ite->second;
std::cout << "Key: " << curkey << std::endl;
if(DEBUG)
{
std::cout << "Checking …
Run Code Online (Sandbox Code Playgroud)