相关疑难解决方法(0)

C#/ EmguCV - 将上传的HttpPostedFileBase转换为Emgu.CV.Mat

我有一个MVC应用程序,其中一个控制器接收上传的文件(图像)作为HttpPostedFileBase对象.

我正在尝试使用处理图像EmguCV,但是我很难将我转换HttpPostedFileBaseEmguCV矩阵对象Emgu.CV.Mat(这只是C#一个cv::Mat对象的实现).

有一个构造函数Mat,看起来像:

public Mat(int rows, int cols, DepthType type, int channels, IntPtr data, int step);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得type,data以及step从我开始HttpPostedFileBase的对象.这可能吗?

在这里看到,我可以将一个对象转换HttpPostedFileBase为一个Image对象(我认为它在System.Drawing命名空间中),这使我可以看到高度和宽度.但是,如何使用此信息来获取其余所需参数以发送Mat()构造函数?

c# opencv emgucv

6
推荐指数
1
解决办法
4115
查看次数

unlockbits,lockbits和try-finally

我正在调用一些使用.NET的BitmapData类的代码.我找到了一些我无法在Googlespace上找到明确答案的东西.

因为似乎必须始终在一对中调用LockBits和UnlockBits,所以我使用它:

         System.Drawing.Imaging.BitmapData tempImageData = tempImage.LockBits(
            new System.Drawing.Rectangle(0, 0, tempImage.Width, tempImage.Height),
            System.Drawing.Imaging.ImageLockMode.ReadOnly, tempImage.PixelFormat);
         try
         {
            //use external library on the data
         }//Exception not handled here; throw to calling method
         finally
         {
            tempImage.UnlockBits(tempImageData);
         }
Run Code Online (Sandbox Code Playgroud)

(我最近一直在使用using语句,这在C#中非常有用,这让我觉得我应该这样做.)麻烦的是,即使是MS自己的文档(http://msdn.microsoft.com/ en-us/library/system.drawing.bitmap.unlockbits.aspx)认为它不适合使用try-finally模式.

尝试 - 最后是必要的还是无偿的?

更新:我可能最终会捕获并重新抛出异常,因为我不知道它可能是什么,并且没有提前捕获它们.

谢谢!

.net c#

5
推荐指数
1
解决办法
2610
查看次数

标签 统计

c# ×2

.net ×1

emgucv ×1

opencv ×1