opencv

Opencv Aruco で Pose estimation する その2 estimatePoseBoard

今度は estimatePoseBoard を試します。 #!/usr/bin/env python # -*- coding: utf-8 -* import cv2 import numpy as np aruco = cv2.aruco # WEBカメラ cap = cv2.VideoCapture(0) dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50) paramete…

Opencv Aruco で Pose estimation する その1

Pose estimation ってのは、姿勢推定 なのでしょうか? estimatePoseSingleMarkers においては、そのマーカーの向きを推定します(多分)。 なお、estimatePoseBoard も有ります。 とにかくやってみましょう。 マーカー画像の用意 今回は、マーカーを5つ(0…

opencv チュートリアルチャレンジ カメラキャリブレーション

カメラキャリブレーション — OpenCV-Python Tutorials 1 documentation Aruco で estimatePoseSingleMarkers を試したいと思ったところ、cameraMatrix と distCoeffs が必要だと判明。 OpenCV: ArUco Marker Detection estimatePoseSingleMarkers Pose estim…

opencv で 鮮鋭化

鮮鋭化 / アンシャープマスキング を行います。 チュートリアルには登場しないし、専用の関数も無いのですが、cvFilter2D で、kernel にマイナスを使用して適用することで実現するようです。 filter2D 使用するカーネルは 0, −1, 0 −1, 5, −1, 0, −1, 0 −1, …

arucoモジュール で向きを正す

arucoモジュール で向きを正してみます。 本当はARとか、もっと高度なことをするためのライブラリ何でしょうけど、射影変換しやすそうなので、やってみました。 円の検出だとかは、円に似ているものを検出してしまうので、どうしても精度が落ちやすいのです…

arucoモジュール を試す

arucoモジュールを試してみます。 インストール 手元のwindowsマシンに入れた場合。 pip install opencv-contrib-python Linuxマシンに入れる際に、pipから opencv-python と opencv-contrib-python を入れたのですが、arucoは無いというエラーが出たため、o…

opencv で マーカー付き用紙の向きを直してみる

マーカーの検出を利用して、向きを直してみます。 カメラの歪み補正等(キャリブレーション)には踏み込みません。 四隅に黒い円のマーカーを付けた用紙です。 この傾きを補正しようと思います。 流れは マーカー検出 座標の並び替え 射影変換 #!/usr/bin/en…

opencv で カードの向きを直してみる

チュートリアルを通じて学んだことを活かして、机の上においたカードを普通に(真上ではない角度から)撮影した画像を、まっすぐに修正してみる。 なお、カードが真っ白だったので、向きが分かるように、適当に文字を上に乗せました。(カードにペンでかけば…

opencv チュートリアルチャンレンジ 43 Shi-Tomasiのコーナー検出とGood Features to Track(追跡に向いた特徴)

Shi-Tomasiのコーナー検出とGood Features to Track(追跡に向いた特徴) — OpenCV-Python Tutorials 1 documentation #!/usr/bin/env python # -*- coding: utf-8 -* import sys import cv2 import numpy as np img = cv2.imread('170523-170301.jpg') #img =…

opencv チュートリアルチャンレンジ 42 Harrisコーナー検出

Harrisコーナー検出 — OpenCV-Python Tutorials 1 documentation #!/usr/bin/env python # -*- coding: utf-8 -* import sys import cv2 import numpy as np img = cv2.imread('170523-170301.jpg') #img = cv2.imread('170519-174830.jpg') #img = cv2.imre…

opencv チュートリアルチャレンジ14 ハフ変換による円検出

ハフ変換による円検出 — OpenCV-Python Tutorials 1 documentation void HoughCircles(Mat& image, vector<Vec3f>& circles, int method, double dp, double minDist, double param1=100, double param2=100, int minRadius=0, int maxRadius=0) ハフ変換を用いて,</vec3f>…

opencv チュートリアルチャレンジ12 テンプレートマッチング

テンプレートマッチング — OpenCV-Python Tutorials 1 documentation void matchTemplate(const Mat& image, const Mat& templ, Mat& result, int method) テンプレートと,それに重なった画像領域とを比較します. パラメタ: image – テンプレートの探索対…

opencv チュートリアルチャレンジ6 画像の勾配

画像の勾配 — OpenCV-Python Tutorials 1 documentation Laplacian, sobelx, sobely やってみよう #!/usr/bin/env python # -*- coding: utf-8 -* import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('170519-144402.jpg…

opencv チュートリアルチャレンジ5 モルフォロジー変換

モルフォロジー変換 — OpenCV-Python Tutorials 1 documentation モルフォロジー変換 とりあえず、カーネルはこれでテスト。 kernel = np.ones((5,5),np.uint8) [ [ 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1 ], [ 1, 1, 1, …

opencv チュートリアルチャレンジ4 画像の平滑化

画像の平滑化 — OpenCV-Python Tutorials 1 documentation 元画像には、adaptiveThreshold を適用後の画像を使用しました。 平均 cv2.blur() void blur(const Mat& src, Mat& dst, Size ksize, Point anchor=Point(-1, -1), int borderType=BORDER_DEFAULT) …

opencv チュートリアルチャレンジ2 画像の幾何変換

画像の幾何変換 — OpenCV-Python Tutorials 1 documentation リサイズ void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR) 画像をリサイズします. パラメタ: src – 入力画像 dst – 出力画像 interpolation – 補間手法: CV_I…

opencv チュートリアルチャレンジ13 ハフ変換による直線検出

ハフ変換による直線検出 — OpenCV-Python Tutorials 1 documentation 直線を検出したい cv2.HoughLines 標準ハフ変換 void HoughLines(Mat& image, vector<Vec2f>& lines, double rho, double theta, int threshold, double srn=0, double stn=0) 標準ハフ変換を用</vec2f>…

opencv チュートリアルチャレンジ3 画像のしきい値処理

画像のしきい値処理 — OpenCV-Python Tutorials 1 documentation 元画像 cv2.threshold この関数は,シングルチャンネルの配列に対して,ある定数での閾値処理を行います.これは,グレースケールからの2値画像生成(関数 compare も,この目的に利用できま…

opencv チュートリアルチャレンジ9 OpenCVにおける輪郭(領域)

輪郭に関するチュートリアル OpenCVにおける輪郭(領域) — OpenCV-Python Tutorials 1 documentation 輪郭抽出 OpenCVの輪郭検出は,黒い背景から白い物体の輪郭を検出すると仮定しています.物体は白(明るい色),背景は黒(暗い色)と覚えておいてください. …

opencv チュートリアルチャレンジ7 Canny法によるエッジ検

Canny法によるエッジ検出 — OpenCV-Python Tutorials 1 documentation cv2.Canny void cv::Canny ( InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize = 3, bool L2gradient = false ) image 8-bit input image…