我制作了一个程序,能够捕获网络摄像头帧并在运行不同的每像素算法后显示它们 - 例如使图像变灰。 目前我正在使用FastBitmap类(无法找到链接atm),它使用指针来设置并获取位图中的像素。
但是,我想让我的programm多线程,以便多个线程在同一个图像上工作。为此,我通过其BitmapData(每个线程一个部分)将图像分成几个部分,让不同的线程在其给定的部分BitmapData上工作。最后,“管理器”等待所有线程完成(加入)并交出结果图像。 这就是理论,但实际上这对我不起作用。
当我运行这个程序时,我得到了一些奇怪的错误,告诉我必须在重新使用它之前释放LHC,我正在访问非法内存,外部异常等......每次都是另一个我无法理解为什么但我认为BitmapData部分是主要问题,但我不想使用较慢的Mashal副本!
所以我的问题如下:
至于图像处理库: 我不需要过滤器或一些默认的图像处理算法,但我需要自己的“每像素”算法 - 我甚至考虑过在我的程序中添加一个像素着色器。的xD
由于我的程序基于网络摄像头帧的转换,我需要尽可能快的算法。 我已经阅读了所有论坛帖子和教程等我可以找到的,但仍然不知道如何正确地使用不安全的代码,直到我使用此帐户最终在这里提出这个问题。
Robbepop
答案 0 :(得分:0)
当然有可能:)
看看: https://github.com/dajuric/accord-net-extensions
此库包含您想要的内容: 并行处理器,用于对图像执行并行操作(例如颜色转换),是的,那些对图像进行操作的函数是不安全的(使用指针):
准备好NuGet包。