qq_41558055 2020-05-01 14:19 采纳率: 0%
浏览 254
已结题

在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


图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-01 15:09
    关注

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决