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();
}
}