2013-03-06 69 views
1

我最近从OpenCV的切换到Emgu CV .. OpenCV中,我使用计算cvAbsDiff(Frame1,Frame2,foreground); ,我可以检查帧差作为的值绝对差:if(cvNorm(frame2,frame1) > xyz){ ... } 并在这里Emgu简历,我计算方式如下:Difference = Previous_Frame.AbsDiff(Frame); 如解释Here差异的类型是图片..我想知道,我怎么能得到的价值(双)的差异? 谢谢:)绝对差值EmguCv

回答

1

你能澄清你的问题多一点吗?

但使用CvInvoke,你可以这样做:

CvInvoke.cvAbsDiff(frame1, frame2, foreground); 
double valueInDouble = CvInvoke.cvNorm(frame1, frame2, NORM_TYPE.CV_DIFF, IntPtr.Zero); 

if (valueInDouble < xyz){} 

面膜是一个可选的参数(OpenCV的文档中设置为NULL),这样你就可以将它设置为IntPtr.Zero

+0

感谢奥利弗:)。 。我试过这个,但我被困在设置面具的价值..我应该提供什么样的价值来获得正常的差异价值.. cz它是IntPtr类型..我应该给它第二帧的副本? – Zeeshan 2013-03-06 18:13:11

+0

尝试使用IntPtr.Zero – Oliver 2013-03-07 13:42:47

+0

我已阅读[http://www.emgu.com/wiki/files/1.3.0.0/html/43dce521-0a5c-44af-4160-9b3f986c5518.htm]但我真的无法理解在这里使用“面具”的东西.. :(我卡住..预先感谢:) – Zeeshan 2013-03-07 16:25:05