在C#中调用MATLAB图像处理程序时数据类型出错

MATLAB中m程序的功能是读取图片进行灰度化和边缘检测,然后将处理后的结果生成图片文件放在桌面。目前已经把生成的dll文件添加到引用中,问题是在调用过程中通过下位机得到的图片无法直接使用,需要转化,我在网上找了许多方法始终找不到合适的,希望有大佬能够帮帮我。

public Bitmap LastFrame
        {
            get { return lastFrame; }
        }
private void btnCustom10_Click(object sender, EventArgs e)
            {
                Class1 a = new Class1();
                MWNumericArray matlab_a = new MWNumericArray(240, 320, cameraWindow.Camera.LastFrame);
                a.tiqudaohangxian(matlab_a);

            }

m程序如下

function daohangxian = suanfa(T)
I = imread(T);% 读入图像
BW = im2bw(I, graythresh(I));% 转换成2进制图像
BW1=edge(BW,'canny');
p = [];
for n = 1:10
  m = find(BW1((260 + n), :) == 1);
  q = length(m(:));
   for t = 1 : (q - 1)
     if ((m(t + 1) - m(t)) >= 30)
        if ((m(t + 1) - m(t)) <= 80)
            p(n) = (m(t + 1) + m(t)) / 2;
        end
     end
   end
end
p=floor(p);
for n = 1:10
BW1((260 + n), p(n)) = 1;
end
daohangxian=BW1;
imwrite(daohangxian,'C:\Users\59136\Desktop\test\test.bmp');
end


图片说明

看下MWNumericArray这个类的构造函数,你可能因为少了或者多了参数造成调用了错误的构造函数

你现在的构造函数第二个参数是byte第三个是bool
但是明显不对,320看上去是分辨率,怎么可能是byte,后面是bitmap也不是bool