アプリ置き場

アプリ置き場

http://www.moreread.net/

ワットチェッカー

PCの消費電力が気になってしょうがない。
ワットチェッカーは持っているんだけど、いつも見える位置に配置しようとすると電源ケーブルをかなり延長する必要がある。Bluetoothで飛ばす製品もあるみたいだけど、結構なお値段する。

ということで、ありものの明暗センサLEDライト+ワットチェッカーWebカメラを使ったソリューション。Webカメラにマグネットシールを張り付けて、PCケース背面に設置、ワットチェッカーを監視。フレキシブルなUSBケーブルとかあればそっちのほうが便利かもしれない。暗くても見えるように近くに明暗センサLEDライトも設置しとく。

OpenCvSharpを使えばWebカメラからキャプチャできるらしい。NuGetしてきて適当にプログラムを書く。PictureBoxIplというコンポーネントがあったので、これを使えば表示できそうな気がする。

namespace WattCheck
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Start();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            CloseCaptureDevice();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            UpdateCapture();
        }

        VideoCapture cap = null;

        private void UpdateCapture()
        {
            if(cap != null && cap.IsOpened()) {
                pictureBoxIpl1.ImageIpl = cap.RetrieveMat();
                System.GC.Collect();
            }
            else
            {
                OpenCaptureDevice();
            }
        }

        private void OpenCaptureDevice()
        {
            for (int i = 0; i < 0x8; i++)
            {
                cap = new OpenCvSharp.VideoCapture(i);
                if (cap.IsOpened())
                {
                    break;
                }
                else
                {
                    CloseCaptureDevice();
                }
            }
        }

        private void CloseCaptureDevice()
        {
            if (cap != null)
            {
                cap.Release();
                cap.Dispose();
            }
        }
    }
}

やったー。
f:id:nazenaninadesico:20181123104530p:plain
PC+ディスプレイの消費電力。
LEDライトは0.2ワットだから気にしない。

あとは文字認識させてロギングしたいけど適当なOCRのライブラリってあるんだろうか。
探してみるとtesseract-ocrというものを使うと良いらしい。
適当に画像を2値化して食わせてみたけど……。

f:id:nazenaninadesico:20181123104536j:plain

反射光やら影やらのせいでうまく認識しない。
7セグ数字くらいなら自前でテンプレートマッチングしたほうが手っ取り早そうな気がしないでもない。そのうちなんとかしよ。