如何从C#Windows窗体应用程序传递PictureBox图像以用于MATLAB函数?
我在Visual Studio 2012上使用C#Windows窗体应用程序,在MATLAB R2016a上使用MATLAB函数。我需要将一个PictureBox图像从Windows窗体应用程序传递到MATLAB函数。我已经知道如何将MATLAB连接到C#作为参考 但当我在我的案例中使用这种方法时,我会得到这样一个例外: 使用亮度时出错 输出参数太多 这是我的C#代码: 这是我的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
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);