我正在用 C# 构建一个函数,它将对帧进行切片,然后计算该切片中的白色像素。我希望能够在多个框架/图片框上使用此功能,因此我需要将 label.Text 的名称更改为正确的标签。我该怎么办?我将使用 mergedImage、mergedImage2 和 BinaryImage。每个图像还将有 outerRight、innerRight、Cent、innerLeft、outerLeft。
private void Slicing(Mat inputFrame)
{
Mat frame = inputFrame.Clone();
//count the number of white pixels
int whitePixelsExtendedOutterLeft = 0;
int whitePixelsExtendedInnerLeft = 0;
int whitePixelsExtendedCent = 0;
int whitePixelsExtendedInnerRight = 0;
int whitePixelsExtendedOutterRight = 0;
Image<Gray, byte> img = frame.ToImage<Gray, byte>();
//Calculates the outter left slice
for (int i = 0; i <= 4; i++)
{
for (int x = i; (frame.Width / 5) * i < (frame.Width / 5) * (i+1) ; x++)
{
for (int y = 0; y < frame.Height; y++)
{
switch (i)
{
case 0:
if (img.Data[y, x, 0] == 255) whitePixelsExtendedOutterLeft++;
break;
case 1:
if (img.Data[y, x, 0] == 255) whitePixelsExtendedInnerLeft++;
break;
case 2:
if (img.Data[y, x, 0] == 255) whitePixelsExtendedCent++;
break;
case 3:
if (img.Data[y, x, 0] == 255) whitePixelsExtendedInnerRight++;
break;
case 4:
if (img.Data[y, x, 0] == 255) whitePixelsExtendedOutterRight++;
break;
}
}
}
}
//displays their respective white pixel count to form1
Invoke(new Action(() =>
{
mergedImage.Text = $"{whitePixelsExtendedOutterLeft} Outter Left ";
//whitePixelsExtendedOutputLIL.Text = $"{whitePixelsExtendedInnerLeft} Inner Left ";
//whitePixelsExtendedOutputLCent.Text = $"{whitePixelsExtendedCent} Center ";
//whitePixelsExtendedOutputLIR.Text = $"{whitePixelsExtendedInnerRight} Inner Right ";
//whitePixelsExtendedOutputLOR.Text = $"{whitePixelsExtendedOutterRight} Outter Right ";
}));
}
我试过连接标签,如:“mergedImage”++ i .Text。当然这没有用。