我是Emgu的新手,正在通过互联网学习C#代码教程。在代码中,我得到了某些元素,如img [channel](第15行)和NewImage(" Background segmented",image)(第21行)未被引用。但我添加了适当的DLL和引用。如果我在这里遗失任何东西,你能告诉我吗?
using Emgu;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.CvEnum;
using Emgu.CV.Util;
using Emgu.CV.Structure;
private void CielabChannelMaskBGSubtraction(string filename, bool displayResult)
{
double threshold = double.Parse(max2textBox.Text);
Image<Bgr, byte> rgb = new Image<Bgr, byte>(filename);
Image<Lab, Byte> img = rgb.Convert<Lab, Byte>();
//get the a* channel
Image<Gray, Byte> gray = img[channel];
//threshold and invert
gray = gray.ThresholdBinary(new Gray(threshold), new Gray(255)).Not();
// display the result
if (displayResult) this.NewImage("Background segmented", image);
}
答案 0 :(得分:0)
问题在于您尝试传入变量channel
和image
,但这些变量不存在。
看起来,例如channel应该访问数组中的elemnt,所以你必须定义它。像
这样的东西int channel = 0; // this would get you the first channel in the img array
图像永远不会被宣布。您不能使用尚未定义的变量