EMGU CV库从捕获设备创建捕获图像,然后您可以随意管理它。您的示例试图在按下按钮时保存图像,而不是遍历图像集合。
您可能想要查看的是counter mechanism
您维护的内容。例如,当您按下按钮或在应用程序初始化时,您读取directory
包含图像并解析名称以确定最后保存的图像的名称。获取number
图像名称的一部分并使用它来初始化您的counter
,然后每次按下按钮保存图像时,递增计数器。
下面是一个简化的例子:
柜台
private int lastSaveCount = 0;
这需要在您的Button_Click
事件和下面的Initialise Counter机制都可以访问的地方。
初始化计数器
var files = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Example\", @"Sample*.jpg").ToList();
foreach (var file in files)
{
var split = Regex.Split(file, @"[a-zA-Z]{1,}([\d]{1,}).jpg", RegexOptions.IgnoreCase);
var save = 0;
if (Int32.TryParse(split[1], out save))
{
lastSaveCount = save > lastSaveCount ? save : lastSaveCount;
}
}
把上面的东西放在合适的地方。
按钮按下
private void button4_Click(object sender, EventArgs e)
{
var capture = new Emgu.CV.Capture();
using (var ImageFrame = capture.QueryFrame())
{
if (ImageFrame != null)
{
lastSaveCount++;
pictureBox1.Image = ImageFrame.ToBitmap();
var filename = string.Format(@"C:\Users\crowds\Documents\Example\Sample{0}.jpg", lastSaveCount);
ImageFrame.Save(filename);
}
_capture.Dispose();
}
}