勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

OpenCV

OpenCVやってみる - 27. シール外形検出

前回の内容 春のパン祭り点数集計で、最初に台紙外形の検出をすることを考えていましたが、どうも難しそうなので諦める方向で。 前に考えた手順は、 台紙外形を取得する 射影変換をするのと、スケーリング(台紙を基準として画像サイズを調整する)に必要 射影…

OpenCVやってみる - 26. 台紙外枠検出その2

前回の続きになります。 おさらい 前回までのおさらいです。 以下のような手順で台紙外形取得を試みました。 Cannyエッジ検出実施 輪郭検出(最外周のみ)実施 面積最大の輪郭を選ぶ 輪郭を単純な多角形で近似、四角形になっていればOK 問題だったのは、 背景…

OpenCVやってみる- 25. 台紙外枠検出

予告通り、春のパン祭り台紙の外枠検出です。 今後は基本的にJupyter notebookで試した後、markdownでダウンロードしてブログに貼り付ける形になると思います。 21.11.22 修正 cv2.drawContour関数の使い方に間違いがありました… 第2引数は輪郭のリストにし…

OpenCVやってみる - 24. Jupyter notebook使ってみた

コマンドプロンプト上でずっとやっているのも大変なので、Jupyter notebookを使ってみました。 見た目もよくなりそう。 Jupyter notebook 使い方 Anacondaをインストールすると、一緒にJupyter notebookが入ってきます。 Windows10環境で使っていますが、検…

OpenCVやってみる - 23. シール点数集計検討

今回はOpenCVネタです。 いままでチュートリアルを追ってきましたが、そろそろ本題の春のパン祭り集計を考えていこうかと。 使えそうな手 今までチュートリアルを見てきた中で、いくつか有用そうなテクニックがありました。 射影変換 台紙を真正面から撮影し…

OpenCVやってみる-22. エピポーラ幾何

今回は、OpenCVチュートリアルの以下のページを参考に進めてみたいと思います。 OpenCV: Epipolar Geometry エピポーラ幾何の理論はチュートリアルサイトの説明を参照で。 今回のテーマ画像 特徴点検出、特徴量算出 マッチング Fundamental matrix計算 Epipo…

OpenCVやってみる-21. 特徴点マッチングとHomography

今回もだいたいチュートリアル通りの内容です。 前々回と前回で、違う視点から同じ対象を撮影した2つの画像での点の対応を見つけることができました。 この結果を使って、射影変換の行列を計算し、画像の視点変換をすることができます。これをやってみます。…

OpenCVやってみる-20. 特徴点のマッチング(FLANN)

前回のやり残しで、FLANNでの特徴点マッチングをやります。 OpenCV: Feature Matching 特徴点のマッチング — OpenCV-Python Tutorials 1 documentation 概要 前回のおさらいですが、FLANNはFast Library for Approximate Nearest Neighborの略で、近似的に特…

OpenCVやってみる-19. 特徴点のマッチング

今回は特徴点のマッチングです。 今までにやった特徴点検出、特徴量生成を元に、2つの画像を比較、同じものが写っている点を探す、 というような感じです。 2つの画像というのは、具体的にはステレオカメラで撮影した画像だったり、ウォーリーを探せのウォー…

OpenCVやってみる-18. ORBによる特徴点検出、特徴量記述

前回の予告通り、ORBをやってみます。 OpenCV: ORB (Oriented FAST and Rotated BRIEF) ORB (Oriented FAST and Rotated BRIEF) — OpenCV-Python Tutorials 1 documentation ざっくり紹介、理論 SIFTやSURFは特許を取られていて自由に使えない その代替とし…

OpenCVやってみる-17. BRIEF

今回はBRIEFをやってみます。 OpenCV: BRIEF (Binary Robust Independent Elementary Features) ざっくり理論 BRIEFは画像中の特徴点の特徴量を生成する方式のひとつです。 SIFTやSURFでは、特徴点の特徴量を表すのにそれなりに大きなデータ量(1点あたりSIFT…

OpenCVやってみる-16. FASTアルゴリズムによる特徴点検出

前回の続き、FASTアルゴリズムを試します。 コーナー検出のためのFASTアルゴリズム — OpenCV-Python Tutorials 1 documentation ざっくり理論 画像の各画素について、これを中心として周長16ピクセルになる円周(半径およそ3ピクセル) 上の画素を調べ、決まっ…

OpenCVやってみる-15. SURFによる特徴点検出

前回のSIFTに続いて、今度はSURFでの特徴点検出です。 SURF (Speeded-Up Robust Features)の導入 — OpenCV-Python Tutorials 1 documentation SURFはSIFTに比べて高速化を目指したアルゴリズムとのこと。 発表は2006年になります。特許が取られていて、まだ…

OpenCVやってみる-14. SIFTによる特徴点検出

今回はSIFTを扱います。 SIFT (Scale-Invariant Feature Transform)の導入 — OpenCV-Python Tutorials 1 documentation SIFTは、2004年にブリティッシュコロンビア大学のD.Loweが発表したもので、 キーポイントの検出、特徴量の計算を行うアルゴリズムとのこ…

OpenCVやってみる-13. Harrisコーナー検出

今回はHarrisコーナー検出をやります。 今更ですが、チュートリアルサイトの順番通りでなく、多少飛ばしている部分もあります。 Harrisコーナー検出 — OpenCV-Python Tutorials 1 documentation Harrisコーナー検出 理論はチュートリアルサイトに書いてある…

OpenCVやってみる-12. ハフ変換(円検出)

どんどん続きを進めます。 次はハフ変換による円検出。 ハフ変換による円検出 — OpenCV-Python Tutorials 1 documentation ハフ変換による円検出 円上の点は、以下の式を満たします。 直線検出のときと同様、この式のパラメータ()の空間に、 その円上に乗っ…

OpenCVやってみる-11. ハフ変換

今回はハフ変換をやってみます。 ハフ変換による直線検出 — OpenCV-Python Tutorials 1 documentation ハフ変換 ハフ変換は2値画像を直線のパラメータ空間に持っていくような変換、 ということでいいのかな。 空間中の直線は、以下の式で表すことができます…

OpenCVやってみる-10. テンプレートマッチング

かなり時間が空いてしまいました… 引き続きOpenCVのチュートリアルをやっていきたいと思います。 今回はテンプレートマッチングをやろうかと。 春のパン祭りシール点数集計的には結構使えそうな内容です。 テンプレートマッチング — OpenCV-Python Tutorials…

OpenCVやってみる-9. 輪郭検出

OpenCVチュートリアルの続きです。 OpenCVにおける輪郭(領域) — OpenCV-Python Tutorials 1 documentation とりあえず輪郭検出、表示 cv2.findContours()関数で、輪郭を検出することができます。 詳細はともかく、やってみます。 2値画像に対しての処理とな…

OpenCVやってみる-8. エッジ検出

OpenCVのチュートリアル通りに進めます。 今回の内容はシール点数集計に役立ちそうです。 画像の勾配 — OpenCV-Python Tutorials 1 documentation Canny法によるエッジ検出 — OpenCV-Python Tutorials 1 documentation Sobelフィルタ、Laplacianフィルタ Sob…

OpenCVやってみる-7. モルフォロジー変換

今回は、チュートリアル通り、モルフォロジー変換です。 モルフォロジー変換 — OpenCV-Python Tutorials 1 documentation モルフォロジー? モルフォロジー(morphology)とは、 「一般に、形態、構造をいう。」 モルフォロジーとは - コトバンク だそうです。…

OpenCVやってみる-6. 画像の平滑化

前回の続きをやっていきます。 チュートリアルのタイトルは「画像の平滑化」で、内容としては画像にフィルタをかけて平滑化する、というものになります。 画像の平滑化 — OpenCV-Python Tutorials 1 documentation ターゲット画像 前回と同じ画像を使います…

OpenCVやってみる-5. 2値化

画像の2値化(閾値処理)をやってみます。 ヒストグラムも表示してみます。 ヒストグラム 2値化するのに、まずどんな閾値を設定すればいいのか見るために、ヒストグラムを表示してみます。 今回は、以下の2つの画像を使います。 2020年と2021年の春のパン祭り…

OpenCVやってみる-4. 射影変換

今回は、画像の射影変換をやってみたいと思います。 射影変換 春のパン祭り得点集計では、射影変換が活用できそうなのでやってみます。 射影変換が何をやっているかは前に勉強していたのですが、完全に忘れた… また復習して記事にします。 ひとまず、ある視…

OpenCVやってみる-3. 色々いじる

今回は、画像に色々手を加えてみたいと思います。 参考 : OpenCV-Pythonチュートリアル — OpenCV-Python Tutorials 1 documentation Python OpenCVの基礎 resieで画像サイズを変えてみる - Pythonの学習の過程とか 画像切り出し シール1枚分の領域を切り出し…

OpenCVやってみる-2. 画像表示

OpenCVやってみるの続きです。 やってみたいこと ヤマザキ春のパン祭りのシールを集めています。 このシール点数集計がいいネタになるのではと。 OpenCVチュートリアル OpenCVのチュートリアルを一度ざっと読んでみたので、これを元に春のパン祭り点数集計を…

OpenCVやってみる-1

画像処理の勉強のために、OpenCVを使ってみたいと思っています。 色々やってみようと思います。 まず環境 Anaconda + python + OpenCVという組み合わせでやろうと思います。 参考にしたサイト。 Anaconda のインストール: Python環境構築ガイド - python.jp …