#author("2022-04-10T03:01:31+00:00","default:hotate","hotate")
#author("2023-06-04T00:37:55+00:00;2022-04-10T03:01:31+00:00","default:hotate","hotate")
#contents
&tag(OpenCV, C++, Python);
&tag(OpenCV,C++,Python);

* リファレンス [#i9e0017c]
- [[OpenCV.jp : OpenCV逆引きリファレンス — OpenCV-CookBook>http://opencv.jp/cookbook/index.html]]
 基本的に OpenCV (と依存ライブラリ),および標準ライブラリ以外は使用しません.
- [[OpenCV · atinfinity/lab Wiki>https://github.com/atinfinity/lab/wiki/OpenCV]] ([[GitHub]])

** [[書籍]] [#t291cfb2]
- [[OpenCVではじめよう ディープラーニングによる画像認識 - Amazon>https://amzn.to/36ZHlRH]]
 OpenCVの基礎的な解説からはじめ、dnnモジュールを用いたディープラーニングによる画像認識についても解説していきます。
-- [[【参考文献】OpenCVではじめよう ディープラーニングによる画像認識 | イメージングソリューション>https://imagingsolution.net/books/opencv%e3%81%a7%e3%81%af%e3%81%98%e3%82%81%e3%82%88%e3%81%86-%e3%83%87%e3%82%a3%e3%83%bc%e3%83%97%e3%83%a9%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0/]]
 

** [[Python]] [#k04ee627]
- [[OpenCVに関する情報 | note.nkmk.me>https://note.nkmk.me/opencv/]]

** VideoWriter [#a6edcd3f]
- [[OpenCVのVideoWriterを使って画像から動画を作る。 - 可変ブログ>http://shibafu3.hatenablog.com/entry/2016/11/13/151118]]
 連続した画像(パラパラ漫画のうような画像)から一つの動画を作ったのでメモを残しときます。
- [[OpenCV Video Writer on Mac OS X>https://gist.github.com/takuma7/44f9ecb028ff00e2132e]]
 Conclusion
 Use 'mp4v' or 'avc1'

** FPS [#o3cdfd9b]
- [[【OpenCV】可変FPSのWebカメラで、一定のFPSで録画したいとき。VBR→CBR【力技】 - OpenCV>https://madeinpc.blog.fc2.com/blog-entry-1364.html]]
 対処療法ですが、ループ内の処理時間を常時計測して、そのときどきで早送りの原因となる空洞ができないように(空洞が埋まるように)、解説などのサンプルではループ内で一回の処理で終わっているwriter << frameを必要回数実行するようなプログラムを書きます。
- [[Python, OpenCVで動画再生時のFPS(フレームレート)を測定・表示 | note.nkmk.me>https://note.nkmk.me/python-opencv-fps-measure/]]
 waitKey(1)としておけば可能な限り最小の待ち時間(最大のFPS)で表示されるため、カメラの映像をリアルタイムで表示する場合は基本的にはwaitKey(1)としておけば問題ないはず。
- [[Python/OpenCVで動画速度(FPS)を変えて再保存!>https://watlab-blog.com/2019/09/28/movie-speed/]]
 fpsを元の動画から取得した後にfps_newと新しいフレームレートを指定して動画を保存している所が違いになります。
-- コメント:結局のところ、"cv::CAP_PROP_FPS"で取得したFPSで一旦動画を出力し、実測値に基づいて変換すると精度が出るらしい(未検証)。実測値がどの程度"cv::CAP_PROP_FPS"に近づくかは、CPUやカメラの性能に依存する。(2020/03/01)
- [[OpenCVで動画のFPSを計測する方法 | yamagablog>https://ymgsapo.com/2019/04/06/opencv-fps/]] (2019/4/6)
 設定値が30FPSなのに対して、計測値は27FPSと少し下回っています。

** ウインドウ [#b008cce8]
- [[cv::Opencvのimshow(...)の直後にcv::waitKey(0) - プログラマ専用SNS ミクプラ>https://dixq.net/forum/viewtopic.php?t=19027]]
 cv::waitKey は、ユーザーからのキー入力を取得する関数ですが、実際にはメッセージループの役割を持っています。
 したがって画像を表示するためには、少なくとも一回は WM_PAINT を処理する必要があり、これが、cv::waitKey を呼び出さないと画像が表示されない理由でもあります。

** Mat [#a0739743]
- [[cv::Matの基本処理 — OpenCV-CookBook>http://opencv.jp/cookbook/opencv_mat.html]]
 OpenCV 1.x では,画像を管理する構造体として IplImage が,その他の行列を管理する構造体として CvMat が用いられました. しかし,OpenCV 2.x の C++ インタフェースでは, cv::Mat クラスを利用して,これらを統一的に扱います.
- [[基本構造体 — opencv v2.1 documentation>http://opencv.jp/opencv-2.1/cpp/basic_structures.html#mat]]
 OpenCV の C++ 行列クラス
- [[OpenCVのMatのタイプ一覧表 | 404 Motivation Not Found>https://tech-blog.s-yoshiki.com/2018/11/787/]]
 OpenCVを触っているとよく出てくるCV_8UC3とかCV_8UC1。どんなものがあるか一覧にしました。
- [[1 cv::Matの基本処理 — OpenCV2 プログラミングブック リファレンス編>https://book.mynavi.jp/support/pc/opencv2/c3/opencv_mat.html]] ([[OpenCV2]])
- [[opencv - cv :: Mat :: ptrを使った効率的なピクセルアクセス<T>ポインタ | opencv Tutorial>https://riptutorial.com/ja/opencv/example/9922/cv----mat----ptr%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AA%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9-t-%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF]]
 効率が重要な場合、 cv::Matオブジェクトのピクセルを素早く処理するには、 ptr<T>(int r)メソッドを使用して、行rの先頭(0から始まるインデックス)へのポインタを取得します。
- [[OpenCVの画像クラス/構造体 - AkiWiki>http://tessy.org/wiki/index.php?OpenCV%A4%CE%B2%E8%C1%FC%A5%AF%A5%E9%A5%B9%A1%BF%B9%BD%C2%A4%C2%CE]]
 OpenCVで画像を作るにあたって,サンプルコードでは様々なクラス/構造体を使っている.その歴史も合わせてちょこちょこ書いてく
- [[[OpenCV][Mat]画素へのアクセススピード比較 - Qiita>https://qiita.com/hmichu/items/0a399d9e3bbf3a2a4454]]
 圧倒的にポインタを用いる方法が速いです。しかし,驚きなのはMatに関するメソッドなどはそれほど速度が変わらないところです。

* [[macOS]] [#jca22e28]
** [[Homebrew]] [#x5bcbf44]
- [[[Homebrew] バージョンを指定してフォーミュラをインストールする方法 (2): 黄昏てなんかいられない>http://kronus9.sblo.jp/article/71268425.html]]

* 機能 [#y1edce2c]
** 顔検出 [#dd3b81a4]
- [[macでOpenCVで顔検出 - Qiita>http://qiita.com/hit14/items/4fc405ddce40d0adae09]]
 OpenCVがHomebrewなどでインストールされている前提

** 静止画 [#scb7bec2]
- [[OpenCVを使ってドット絵をテイストそのままに拡大してみた - Qiita>http://qiita.com/shzero5/items/f283997641f6682c7197]]
- [[画像の読み込み - AkiWiki>http://tessy.org/wiki/index.php?%B2%E8%C1%FC%A4%CE%C6%C9%A4%DF%B9%FE%A4%DF]]
 Mat cv::imread(String &filename, int flags); †
 OpenCV 2.0 から実装されたC++インタフェース
 OpenCV 3.0 より、 highguiモジュールからimgcodecモジュールに移動した

** TickMeter [#xa1fa531]
- [[OpenCV 3.0でTickMeterを使う · atinfinity/lab Wiki>https://github.com/atinfinity/lab/wiki/OpenCV-3.0%E3%81%A7TickMeter%E3%82%92%E4%BD%BF%E3%81%86]]
-- コメント:[[OpenCV4]]でも問題なく動作した。ただし、インクルードは下記の通り。(2020/03/01)
 #include <opencv2/core/utility.hpp>

** [[C++]] [#tb2163c7]
- [[OpenCV(C++)の画像処理メモ - Qiita>https://qiita.com/yoyoyo_/items/aada199371f6802bb887]]
 ただしC++のOpenCV

** [[デバッグ]]機能 [#b94f426d]
- [[初めてのOpenCV開発 ― デバッグ機能およびデバッグ支援プラグイン【OpenCV 2.4.9】 - Build Insider>http://www.buildinsider.net/small/opencv/06]]

** UI [#h6613244]
- [[C++版OpenCVでcreateTrackbar第6引数userdataを使ってコールバック関数に参照させてみた - Qiita>https://qiita.com/satsukiya/items/5a4b93b56cb137c9a325]]
 userdata – コールバック関数に渡されることになるユーザデータ.グローバル変数に頼らずにトラックバーイベントを扱うために利用されます
- [[C++版OpenCVでトラックバーを表示してみた - Qiita>https://qiita.com/satsukiya/items/8469d7f575b09fae64be]]
 今回説明するトラックバーはパラメータを可変に動かすことで出力画像を表示することができる

** ノイズ [#h697a7f7]
- [[OpenCV 備忘録: OpenCVによる画像の膨張と縮小>https://iwaki2009.blogspot.com/2013/01/opencv_29.html]]
 よく使用するのは、画像のノイズやひげを除去する 
 cv::erode(from, to, cv::Mat(), cv::Point(-1,-1), 1);
 画像の欠損部を補完する
 cv::dilate(from, to, cv::Mat(), cv::Point(-1,-1), 1);

* 関連 [#jbff5913]
#taglist(tag=OpenCV)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS