访问像素和对象跟踪:Emgu CV 还是 Aforge.Net?哪一个更快更容易?
我是图像处理和机器视觉的新手。我将编写一个简单的应用程序,它可以处理多页 TIFF 文件并对其进行一些对象跟踪。我在 Mathematica 8 中实现了整个故事,现在我将使用 C# 和 WPF 皮肤编写一个真正的应用程序。哪种 API 最适合我? Aforge.Net 还是 Emgu CV?我应该从哪里开始?
I am new to Image Processing and Machine Vision. I am going to write a simple app which works with multipage TIFF files and does some object tracking on them. I implemented the whole story in Mathematica 8 and now I'm going to write a real application in C# with a WPF skin. What API is the best for me? Aforge.Net or Emgu CV? and from where should I start?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您甚至可以只使用普通的 C#;我使用 http 的想法完成了图像处理代码://coolthingoftheday.blogspot.com/2008/04/lock-your-bits-faster-c-bitmap.html 和 http://www.codeproject.com/KB/GDI-plus/pointerlessimageproc.aspx。基本上,您将数据数组(对于位图、TIFF 等)复制到您自己的托管数组中,操作托管数组,然后在完成后将数据复制回来。如果您对速度感兴趣,我建议使用整数数学和一些位移;这两项优化使我的速度比普通的 GetPixel 和 SetPixel 提高了 70 倍。
另外,为了简单起见,我建议一开始使用位图;如果您需要内存压缩或缓存未命中是一个问题,您可以更改为 TIFF。
You can even just use plain ol' C#; I did my image processing code using the ideas from http://coolthingoftheday.blogspot.com/2008/04/lock-your-bits-faster-c-bitmap.html and http://www.codeproject.com/KB/GDI-plus/pointerlessimageproc.aspx. Basically, you copy the array of data (for a bitmap, TIFF, etc) to your own managed array, manipulate the managed array, then copy the data back when you're done. I recommend using integer math and a bit of bitshifting if you're interesting in speed; these two optimizations gave me a combined 70-fold speedup over plain GetPixel and SetPixel.
Also, I recommend using bitmaps for simplicity's sake initially; you can change to TIFF if you need the memory compression or if cache misses are a concern.