C# 備忘録 カメラを起動しカメラ撮像動画を表示する その12

C言語
プログラマ
プログラマ

マネージャさん。Webカメラを使ってWebカメラで撮像した画像を表示したいと思ってます。その方法について教えていただけませんか?

マネージャ
マネージャ

はい。この記事では、 Webカメラを使ってWebカメラで撮像した画像を表示の方法についてお話したいと思います。

   private void button1_Click_1(object sender, EventArgs e)
    {
        //VideoCapture作成
        using (_camera = new VideoCapture())
        {
            //カメラの起動 
            //_camera.Open(0);
            _camera.Open(0);
            if (!_camera.IsOpened())
            {
                throw new Exception(”capture initialization failed”);
            }

            //画像取得用のMatを作成
            _flame = new Mat();

            while (true)
            {
                try
                {
                    _camera.Read(_flame);
                    if (_flame.Empty())
                    {
                        break;
                    }

                    if (_flame.Size().Width > 0)
                    {
                        //PictureBoxに表示 MatをBitMapに変換
                        pictureBox1.Image = BitmapConverter.ToBitmap(_flame);
                    }

                    int key = Cv2.WaitKey(100);             //100msの待ち時間

                    if (this.IsDisposed)
                    {
                        break;
                    }
                }

                catch (Exception)
                {
                    break;
                }
            }

        }
    }

C# 備忘録 アプリケーションの二重動作を抑制する その10

C言語
プログラマ
プログラマ

マネージャさん。アプリケーションが2重で立ち上がって誤動作してしまいます。同じアプリケーションを立ち上げたときの処理について教えてください。

マネージャ
マネージャ

はい。この記事では、アプリケーションが2重で立ち上がらないような処理についてお話したいと思います。

C#でアプリケーションの二重起動をさせないコードについてお話します。常駐ソフトなどでは、アプリケーションを二つ以上起動させたくない場合があります。ミューテックスを利用することで多重起動を抑止できます。C#の Windows フォームアプリケーションでは、Progarm.csファイルのMain()関数内にミューテックスの処理を記述することで実現できます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace SingleApplicationExecute
{
  static class Program
  {
    /// <summary>
    /// アプリケーションのメイン エントリ ポイントです。
    /// </summary>
    [STAThread]
    static void Main()
    {
      //ミューテックス作成
      Mutex app_mutex = new Mutex(false, ”MYSOFTWARE_001”);

      //ミューテックスの所有権を要求する
      if (app_mutex.WaitOne(0, false) == false) {
        MessageBox.Show(”このアプリケーションは複数起動できません。”);
        return;
      }
      
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new FormMain());
    }
  }
}

C# 備忘録 ファイル名を現在日付・時間に指定する その11

C言語
プログラマ
プログラマ

マネージャさん。ファイルを生成するときに、自動的にファイル生成時の日付・時間を指定できるようにしたいと思ってます。その方法について教えていただけませんか?

マネージャ
マネージャ

はい。この記事では、ファイルを生成するときに、自動的にファイル生成時の日付・時間を指定できる方法についてお話します。


string DATA_FILE_NAME;
DATA_FILE_NAME = "c:" + $"{DataTime.Now.String("yyyyMMdd")}" + $"{DataTime.Now.String("HHmmss")}";

C# 備忘録 別のプログラムファイルでプログラミング Visual Studio2019 その9

C言語
プログラマ
プログラマ

マネージャさん。1つのファイルでプログラムを書いてきましたが、プログラムが長くなってきて、扱いに困ってます。別のファイルにプログラムを書いてきたいと思います。

マネージャ
マネージャ

そうですか。この記事では、Visual Studio2019にて、別のプログラムファイルでプログラミング方法の手順についてお話したいと思います。

①ソリューションエクスプローラのプロジェクト名のところを右クリック。
②追加 ⇒ 新しい項目 を選択
③クラスを選択し、名前を編集する

C# 備忘録 画像処理 2値化処理と画像を表示 その8

C言語
プログラマ
プログラマ

マネージャさん。画像を2値化したいと思います。教えていただけませんか?

マネージャ
マネージャ

はい。この記事では画像を2値化する方法についてお話したいと思います。

画像を読み込んで2値化処理をして表示しましょう。

Mat th =new Mat(); 
Mat GRAY = new Mat();
Mat Img = new Mat (Path);  //ここでPathは画像データがあるパス(ファイル名)
GRAY = Imp.CvtColor(ColorConversionCode.BGR2GRAY);
Cv2.Threshold(GRAY, Th, 128(閾値), 255(最大階調), ThresholdTypes.Binary);
pictureBox1.Image = BitmapConverter.ToBitmap(Th);

C# 備忘録 String型の文字列から文字列の長さを取得する その7

C言語
プログラマ
プログラマ

マネージャさん。文字列の長さを測定する方法について教えてただけませんか?

マネージャ
マネージャ

そうですね。この記事では、 文字列の長さを測定する方法について お話したいと思います。

String型の文字列から文字列の長さを取得するには、String.Lengthのプロパティを使う。

string s = "Hallow";
int Length = s.Length;

Length にはInt型の6の数字が入ります。

C# 備忘録 画像処理 RGBをグレーコードに変換画像 その5

C言語
プログラマ
プログラマ

マネージャさん。カラー画像(RGB画像画像)をグレーコードに変換したいと思います。やり方教えてもらえますか?

マネージャ<br>
マネージャ

はい。この記事では、 カラー画像(RGB画像画像)をグレーコードに変換する方法についてお話します。

Img = new Mat(”画像.bmp")
Img2 = new Mat();
Img2 = Img.CvtColor(ColorConvertsionCodes.BGR2GRAY);

C# 備忘録 画像処理 PictureBoxに画像を表示 その4

C言語

マネージャさん。画像を表示したいと思います。やり方をおしていただけませんか?

マネージャ<br>
マネージャ

はい。この記事では、Picture Boxに画像を表示する方法についてお話します。

var img = Image.Image.FromFile(path)  //pathは画像データがあるフォルダとファイル名
picture.Box1.Image = img;

C# 備忘録 system.Windows.Forms.Timer を用いたタイマー処理 その3

C言語
プログラマー
プログラマー

マネージャさん。一定周期で起動するタイマーを有するプログラムを書きたいと思います。

マネージャ
マネージャ

はい。この記事では、 一定周期で起動するタイマーを有するプログラム についてお話したいと思います。

TickHadlerの中の処理を100ms周期で行う処理です。

using System.Windows.Forms;
System.Windows.Forms.Timer Timer1=new System.Windows.Forms.Timer();  グローバル領域

Timer1.Interval = 1000 ;  1秒周期 ms単位
Timer1.Tick += new EventHandler(TickHandler);  Tickhandler関数で動作
Timer1.Start();  タイマースタート

private void TickHandler(obect sender , EventArgs  e){
    周期的に処理すること
}