Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#Windows窗体应用程序传递PictureBox图像以用于MATLAB函数?_C#_Matlab - Fatal编程技术网

如何从C#Windows窗体应用程序传递PictureBox图像以用于MATLAB函数?

如何从C#Windows窗体应用程序传递PictureBox图像以用于MATLAB函数?,c#,matlab,C#,Matlab,我在Visual Studio 2012上使用C#Windows窗体应用程序,在MATLAB R2016a上使用MATLAB函数。我需要将一个PictureBox图像从Windows窗体应用程序传递到MATLAB函数。我已经知道如何将MATLAB连接到C#作为参考 但当我在我的案例中使用这种方法时,我会得到这样一个例外: 使用亮度时出错 输出参数太多 这是我的C#代码: 这是我的MATLAB函数代码: function [ result ] = Brightness(Image, Ch, Off

我在Visual Studio 2012上使用C#Windows窗体应用程序,在MATLAB R2016a上使用MATLAB函数。我需要将一个PictureBox图像从Windows窗体应用程序传递到MATLAB函数。我已经知道如何将MATLAB连接到C#作为参考

但当我在我的案例中使用这种方法时,我会得到这样一个例外:

使用亮度时出错

输出参数太多

这是我的C#代码:

这是我的MATLAB函数代码:

function [ result ] = Brightness(Image, Ch, Offset)
newBuf=Image;
if (Ch == 0)
newBuf(:,:,1)= Image(:,:,1)+Offset;
elseif (Ch == 1)
newBuf(:,:,2)= Image(:,:,2)+Offset;
else
newBuf(:,:,3)= Image(:,:,3)+Offset;
end
result=newBuf;

end
我尝试在C#代码中添加断点以了解异常发生的位置,我发现它发生在这一行:

matlab.Feval("Brightness",1,out result,pictureBox1.Image, 
brightnessChannel.SelectedIndex,brightnessOffsettxt.Text);

我以前在MATLAB上使用过MATLAB函数,它没有任何问题。

请阅读-总结是,这不是一种向志愿者讲话的理想方式,可能会对获得答案产生反作用。请不要将此添加到您的问题中。问题是您的路径包含空格,并且
cd
将其解释为两个独立的参数,而它只接受一个。替换为
cd'C:\Users\owner\Documents\MATLAB\Self-Implemented Functions\Channel Brightness'
。始终阅读错误消息并尝试理解它们。它们是用来帮助您的。@Naveh我删除了空格,并将此行的输出数从2改为1:
matlab.Feval(“亮度”,1,输出结果,pictureBox1.Image,brightnessChannel.SelectedIndex,BrightnessOffsetxt.Text)因此,使用过多的输入参数导致异常从错误更改。使用太多输出参数时出错。我应该改变什么数字?请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。问题是您的路径包含空格,并且
cd
将其解释为两个独立的参数,而它只接受一个。替换为
cd'C:\Users\owner\Documents\MATLAB\Self-Implemented Functions\Channel Brightness'
。始终阅读错误消息并尝试理解它们。它们是用来帮助您的。@Naveh我删除了空格,并将此行的输出数从2改为1:
matlab.Feval(“亮度”,1,输出结果,pictureBox1.Image,brightnessChannel.SelectedIndex,BrightnessOffsetxt.Text)因此,使用过多的输入参数导致异常从错误更改。使用太多输出参数时出错。我应该换几号?
matlab.Feval("Brightness",1,out result,pictureBox1.Image, 
brightnessChannel.SelectedIndex,brightnessOffsettxt.Text);