我在理解 backgroundsubtractormog2 的所有参数时遇到问题.
我查看了代码(位于 bfgf_gaussmix2.cpp),但没有看到与上述论文的联系。比如Tb = varThreshold,但是Tb在论文中的名字是什么?
我对 fat 标记的参数特别感兴趣。
让我们从简单的参数开始[我的评论]:
混合体
混合成分的最大允许数量。实际数量是按像素动态确定的。 [为 GMG 设置 0]
uchar nShadowDetection
用于在输出前景蒙版中标记阴影像素的值。默认值为 127。
float fTau
阴影阈值。如果像素是背景的较暗版本,则检测到阴影。 Tau 是一个阈值,它定义了阴影可以变暗多少。 Tau= 0.5 意味着如果一个像素比暗两倍多那么它就不是阴影。
现在给那些我不明白的:
float backgroundRatio
定义组件是否足够重要以包含到背景模型中的阈值(对应于论文中的 TB=1-cf??哪篇论文??)。 cf=0.1 => TB=0.9 是默认值。对于 alpha=0.001,这意味着模式在被视为前景之前应该存在大约 105 帧。
float varThresholdGen
有助于确定样本何时接近现有组件(对应于 Tg)的马氏距离平方阈值。如果它不靠近任何组件,则生成一个新组件。 3 西格玛 => Tg=3*3=9 是默认值。较小的 Tg 值会生成更多的成分。较高的 Tg 值可能会导致成分数量较少,但它们可能会变得太大。 [我一个字都听不懂]
在构造函数中使用了变量varThreshold。它和 varThresholdGen 一样吗?
马氏距离平方的阈值决定它是否被背景模型很好地描述(见 Cthr??)。该参数不影响后台更新。一个典型的值可以是 4 sigma,即 varThreshold=4*4=16; (见 Tb??)。
float fVarInit
新生成的组件的初始方差。它影响适应速度。参数值基于您对图像的典型标准偏差的估计。 OpenCV 使用 15 作为合理值。
float fVarMin
用于进一步控制方差的参数。
float fVarMax
用于进一步控制方差的参数。
float fCT
复杂性降低参数。此参数定义需要接受以证明组件存在的样本数。 CT=0.05 是所有样本的默认值。通过设置 CT=0,您将获得与标准 Stauffer&Grimson 算法非常相似的算法。
有人在 OpenCV 网站上问了几乎相同的问题,但是 without an answer.
最佳答案
嗯,如果您不知道所用算法的详细信息,我认为没有人可以告诉您哪个参数是什么。此外,如果您知道算法的详细信息,则不需要任何人告诉您哪个参数是什么。我说的是详细参数(fCT、fVarMax 等),而不是简单的参数(nmixtures、nShadowDetection 等)。
因此,我认为您应该阅读文档中引用的论文。这是论文的链接 1 , 2 , 3 .
你还应该阅读 this论文也是如此,这是背景估计的开始。
阅读这些论文并检查代码后,我相信您会理解这些参数是什么。
祝你好运!
关于c++ - BackgroundSubtractorMOG2 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808831/
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"
我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)
两者都可以defsetup(options={})options.reverse_merge:size=>25,:velocity=>10end和defsetup(options={}){:size=>25,:velocity=>10}.merge(options)end在方法的参数中分配默认值。问题是:哪个更好?您更愿意使用哪一个?在性能、代码可读性或其他方面有什么不同吗?编辑:我无意中添加了bang(!)...并不是要询问nobang方法与bang方法之间的区别 最佳答案 我倾向于使用reverse_merge方法:option
我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
对于作为String#tr参数的单引号字符串文字中反斜杠的转义状态,我觉得有些神秘。你能解释一下下面三个例子之间的对比吗?我特别不明白第二个。为了避免复杂化,我在这里使用了'd',在双引号中转义时不会改变含义("\d"="d")。'\\'.tr('\\','x')#=>"x"'\\'.tr('\\d','x')#=>"\\"'\\'.tr('\\\d','x')#=>"x" 最佳答案 在tr中转义tr的第一个参数非常类似于正则表达式中的括号字符分组。您可以在表达式的开头使用^来否定匹配(替换任何不匹配的内容)并使用例如a-f来匹配一
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些