private void ProcessFrame(object sender, EventArgs arg)
{
Wrapper cam = new Wrapper();
//show the image in the EmguCV ImageBox
WebcamPictureBox.Image = cam.start_cam(capture).Resize(390, 243, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC).ToBitmap();
FaceDetectedLabel.Text = "Faces Detected : " + cam.facesdetected.ToString();
}
我正在开发一个C#windows应用程序。我遇到了一个简单的问题:
如何使用条件执行if else:如果“ cam.facesdetected.ToString()”如果等于或大于2,请执行其他操作。
我尝试了这个,但它似乎不起作用。谁能帮我?
cam.facesdetected = abc;
MessageBox.Show("The detected faces is:" + abc);
if (abc >= 2)
{
//Do action
}
else
{
//Do nothing
}
答案 0 :(得分:2)
你可以:
if (Convert.ToInt32(abc) > 2)
DoWork()
虽然将ABC声明为一个整数开头可能是明智的,但如果它总是一个整数。
答案 1 :(得分:2)
我相信你的if语句倒退了。
abc = cam.facesdetected;
现在,您可以按照列出的abc
进行操作。
答案 2 :(得分:0)
您只能通过右侧变量
指定左侧变量LHS=RHS
你错误地分配了
它必须是abc = cam.facesdetected;
你可以检查它是否大于&使用TryParse
方法
bool result = Int32.TryParse(abc, out number);
if (result)
{
if(number>=2)
{
//dowork;
}
}
答案 3 :(得分:0)
我认为您应该在不指定任何新变量的情况下使用它。无需使用abc
变量。您可以直接使用cam.facesdetected
(我认为它是一个数字),如下所示:
MessageBox.Show("The detected faces is:" + cam.facesdetected.ToString());
if (cam.facesdetected >= 2)
{
//Do action
}
else
{
//Do nothing
}
答案 4 :(得分:0)
使用数字时不要使用.ToString()
。
您正在以错误的方式分配变量,这应该是
var abc = cam.facesdetected;
如果cam.facesdetected不是数字,则使用
var abc = Convert.ToInt32(cam.facesdetected);
然后
if (Convert.ToInt32(abc) >= 2)
{
//Do action
}