OpenCvSharpって便利ねー
もう6年も前の話になるのか。7セグの数値画像から数字を読み取ってログを取るプログラムを作りました。https://plaza.rakuten.co.jp/spectra/diary/202006010000/自分で言うのもなんだけど、かなり便利です。手で記録するのは面倒、でもアンプやADCを用意するほどでもない、という中途半端なケースは意外と多いからです。そもそも出力端子のない計器も多い。でもこのプログラム、致命的な欠点がありました。それは画像をスクリーンショットで取得していたことです。つまりウインドウを動かしたり、別のウインドウが被さったり、リモートデスクトップでレイアウトが崩れたりすると読めなくなるのです。まあ自分だけが使う分にはそれでいいけどね・・・・と思っていたのですが、ある日、ごく当たり前のことに気づきました。「カメラの画像を直接読めばいいじゃん」6年経ってようやっと気づいた(笑)USBカメラ画像を取り込むのに便利なソフトがあります。OpenCvSharphttps://github.com/shimat/opencvsharpNuGetからじゃなく、zipファイルを直接落として、必要なDLLだけ参照の追加するのでもOKです。C#/VB.NETで画像処理①https://skprogramlab.hatenablog.com/entry/OpenCVSharp-Sample1古めの.NET frameworkを使っている場合はちょっと古いバージョンを落とさないといけません。諸般の事情で.NET framework4.6.1を使ってますが、これだとver4.5ぐらいまでです。まぁOpenCvSharpの基本的な機能を使うだけなら問題ないでしょう。ウェブカメラ WEBカメラ マイク内蔵送料無料 200万画素 視野角84°フルHD USBカメラ ウェブカメラ PC パソコン 配信 カメラ ネット配信 ウェブ会議 WEB会議 オンライン オートフォーカス ビデオ通話 ICA-841 アイリスオーヤマ動作確認コードformにButton1とPictureBox1を貼り付けておいて、Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Using v As New VideoCapture(0), img As New Mat v.Read(img) PictureBox1.Image = img.ToBitmap End UsingEnd Subこれでpicutreboxにカメラ画像が出ればOK。たったこれだけ。画像データはMat形式のオブジェクト(ここではimgという名前)となります。保存するときはCv2.ImWrite("output.jpg", img)だけでOK。高度な画像処理機能もあって、上下・左右反転Cv2.Flip(img, img FlipMode.Y)Cv2.Flip(img, img, FlipMode.X)モノクロ化Cv2.CvtColor(InputImg, InputImg, ColorConversionCodes.BGR2GRAY)切り出しDim center As New Point2f (img.Width / 2, img.Height / 2) '切り出す中心座標(画像の中心)と、Dim patchSize As New OpenCvSharp.Size(InputImg.Width \ 2, InputImg.Height \ 2) '切り出す画像サイズ (ここでは元画像の中央部分の半分を切り出し)と、Dim cropped_img As New Mat() '切り出されたイメージを収めるオブジェクトを準備してCv2.GetRectSubPix(InputImg, patchSize, center, cropped_img) '切り出す拡大Dim ZoomSize As New OpenCvSharp.Size(cropped_img.Width * 2, cropped_img.Height * 2) '拡大後の画像のサイズ(ここでは2倍に拡大)Dim zoom_img As New Mat() '拡大したイメージを収めるオブジェクトを準備してCv2.Resize(cropped_img, zoom_img, ZoomSize, 0, 0, InterpolationFlags.Linear) 'バイリニア補完で拡大切り出しと拡大を連続でやればズーム機能が出来ます。重ね合わせ(多重露光)なんかも簡単にできちゃうCv2.Accumulate(img, output_img, Nothing)【送料無料】ELP 5-50mm可変焦点レンズ USBカメラ 会議用UVCカメラPC Webcam Linux windows video camera Webカメラ 広角ウェブカメラ-----解析ソフトに組み込んでみましたスクショを取得するのではないので、画面がどうなっていようが裏でちゃんと動いてくれます。これで使い勝手100倍です。いやマジでこれで定年まで戦えるかも(誰と?)深層学習で画像解析するとか今の流行りですが、7セグ読むのにそこまでやる必要もない。何でもかんでもAIというのは間違ってるし、その前に適切な資源というのがなんなのかをきっちり考えることもサステイナビリティを考えるうえでは大切だと思う。AI技術が分からんだけやろ!とか言うな その通りじゃ<7/19 ~26限定 全品15倍 要エントリー>自然言語処理&画像解析 “生成AI”を生み出す技術/鎌形桂太/三好大悟ではごきげんよう。