とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

OpenCV

Python+OpenCVで画像処理 勉強会第一回(物体認識、背景削除)

にゃんぱすー! 大学の某サークルの画像処理関連の勉強会の内容です。 この記事では、以下の内容について語っていきます Python + OpenCVの環境構築 OpenCVの基本的な使い方 画像の読み込み・表示 カメラ画像の読み込み・表示 各種エフェクト 二値化 グレー…

【C++】MinGW (g++)とCMakeでOpenCVとopencv-contributeをビルドする(Windows)

バージョン はじめに ビルド方法 HelloWorld HelloWorld実行 バージョン $ cmake --version cmake version 3.17.2 $ make -v GNU Make 3.81 $ mingw32-make -v GNU Make 4.2.1 $ g++ -v gcc version 8.1.0 はじめに タイトルの通りです。開発環境がVisual St…

【OpenCV/C++】画像の一部分を修復する(cv::inpaint)

今回すること OpenCVを用いて画像の一部を修復します。例えば、下の画像の様に、電線だけ消す、というようなことができます。(下の方は失敗していますが、一番上4本の電線はかなりきれいに消えていると思います) このような画像修復を行うために、cv::inpa…

【OpenCV/C++】GrabCutで対話的な前景抽出を行う(AEのロトブラシの画像版)

この記事では、 ↑画像を、 ↑こんな風にするエフェクトをC++で作っていきます。Rotoscoping、AEで言うところのRotobrush、日本語だと前景抽出とかセグメンテーションとかそういう類の技術です。 実装方法 細かいことを言うと、セグメンテーションのアルゴリズ…

【OpenCV/C++】OpenCVでトーンカーブっぽいものを実装する

タイトルの通りです。今回作ってみるのはこれです。 右側の画面の2つの黄色の円を動かすことで、画像の色調補正を行うことができるプログラムです。 右側の画面の白色の曲線が補正の値を表していて、横軸が入力値(RGBそれぞれ)、縦軸が出力値となります。 …

【OpenCV/C++】画像に3DLUTをあてる(適応させる)プログラム!(立方体補正)

LUTとは 1DLUTと3DLUT LUTファイルの拡張子 LUTの格子点 立方体補間 プログラム(補間なし) 実行結果(補間なし) プログラム(補間あり) 実行結果(補間あり) LUTとは LUT(Lookup Table、ルックアップテーブル)とは、 複雑な計算処理を単純な配列の参照…

【C++/OpenCV】OpenCVでピクセルソート!

ピクセルソートとは AfterEffectとかAviUtlの中の数あるエフェクトの中でも気に入っているのがPixelSortです。(AviUtlの場合はAodaruma様の外部スクリプトを導入する必要があります) (AviUtlでのPixelSortの例) その名の通り、画像の「ピクセル」を「ソ…

【C++】OpenGLで描画したものをOpenCVのMatに変換

すること サンプルプログラム 実行結果 解説 オフスクリーンレンダリング レンダリングしたデータを取得 すること shizenkarasuzon.hatenablog.com 少し前に、OpenGLを使って四角形を表示するプログラムを書きました。この記事ではOpenGLでレンダリングを行…

【C++/OpenCV】スクリーンキャプチャした映像を表示 or 動画ファイルとして保存

タイトルの通りです。 C++を使ってスクリーンキャプチャを行います。 プログラム1(キャプチャ映像表示) 実行結果1 プログラム2(キャプチャした映像をmp4で保存) 実行結果2 参考文献 ちなみに、Python版は↓です。 shizenkarasuzon.hatenablog.com ではま…