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