プログラム全般
【OpenCV-Python】BGRA(32bit,8bitx4ch)のBitmapファイル読込
OpenCVで32bit(BGRA, 8bit4ch)のBitmapファイル(*.bmp)をimread()関数でファイルを開くと、OpenCVのバージョンに依存して、32bit(4ch) もしくは 24bit(3ch) で読込まれるようで...
【OpenCV-Python】cvtColorでBayer変換するときの定数
一般的なカラーカメラでは、モノクロのセンサの各画素にBayerと呼ばれるパターンのカラーフィルタが配置された状態で、画像を撮影しています。 このパターンはGRBG(詳細は後述) このフィルタが配置された状態で撮影した画像は、下図のように、市...
【OpenCV-Python】getTextSize(文字の大きさを調べる)
OpenCVで描画する文字の大きさを調べるにはgetTextSize()関数を用います。 文字を描画するputText()関数では、文字を描画する位置を文字の左下の位置で指定しますが、文字の位置を上寄せ、下寄せ、右寄せ、左寄せ、左寄せなどを...
【OpenCV-Python】putText(文字の描画)
OpenCVで画像に文字を描画するにはputText()関数を用います。 ただし、日本語の描画を行うことはできません。 putTextの構文 putText( img, text, org, fontFace, fontScale, col...
【OpenCV-Python】CvZoomWindow class(ズーム、パン機能付き画像表示ウィンドウ)
OpenCVで画像を表示するには、namedWindow()でウィンドウを作成して、imshow()で画像を表示しますが、画像は等倍で表示するか、cv2.WINDOW_NORMALを指定して、ウィンドウのサイズに合わせて画像の拡大縮小を行う...
【OpenCV-Python】getWindowImageRect(画像表示領域の取得)
OpenCVのnameWindow()やimshow()で表示されたウィンドウの画像表示領域の情報(位置、幅、高さ)を取得するには、getWindowImageRect()関数を用います。 getWindowImageRect()関数で取得...
【OpenCV-Python】rectangle(矩形(長方形)の描画)
OpenCVで矩形(長方形)を描画するにはrectangle()関数を用います。 rectangle()関数には、長方形の対角の2点の座標を指定する方法と、Rect(長方形の左上のX座標、Y座標、幅、高さ)を指定する方法があります。 長方形...
【OpenCV-Python】circle(円の描画)
OpenCVで画像に円を描画するには、circle()関数を用います。 circle()関数の構文 circle( img, center, radius, color]] ) -> img 引数 img 円の描画先の画像データ cente...
【OpenCV-Python】setMouseCallback(マウスのコールバック関数登録)
OpenCVのnamedWindow()で作られたウィンドウやimshow()で自動で表示されたウィンドウのマウスイベントのコールバック関数を登録するにはsetMouseCallback()関数を用います。 setMouseCallback...
【OpenCV-Python】line(線の描画)
OpenCVで画像に線を描画するには、line()関数を用います。 line()関数の構文 line(img, pt1, pt2, color]]) ->img 引数 img 線の描画先の画像データ pt1 線の始点の座標 (X座標, Y座...
【OpenCV-Python】カメラからの画像取込を別スレッドにする
カメラからの画像取込を、なぜ、わざわざ別スレッドにしたいか?というと、よくある画像取込のプログラム import cv2 # カメラを開く cap = cv2.VideoCapture(0) while True: # 画像をキャプチャする...
【OpenCV-Python】色を指定して新規画像データを初期化
OpenCVで、画像に線や円などを描画する際、ベースとなる画像データを色を指定して新規作成したい時があるかと思います。 PythonのOpenCVにはC++のMatクラスのようなものはなく、画像データはnumpyのndarrayなので、nu...
【OpenCV-Python】LineTypes(線描画の種類)
OpenCVで線を描画する際、斜めに線を描画すると、どうしても線がギザギザしてしまうのですが、このギザギザ部分の描画方法をLineTypes enumで指定します。 ほとんどの線や円などの描画では、 cv2.LINE_8 が初期値になってい...
【OpenCV-Python】matchTemplate(テンプレートマッチング)
OpenCVでテンプレートマッチングを行うにはmatchTemplate()関数を用います。 ただし、OpenCVのテンプレートマッチングは、回転やスケール変動に対応していないため、OpenCVの関数の中では使いずらい関数の一つでもあります...
【OpenCV-Python】Canny(Canny edge detection)
Canny edge detectionの処理アルゴリズムついてはこちらのページ で紹介していますが、Canny edge detectionで画像のエッジ部分を抽出すると、明確なエッジがなくとも、風景画などの、自然な画像においてもエッジ部...
【OpenCV-Python】Sobel(エッジ検出)
OpenCVでソーベルフィルタ処理を行うには、Sobel()関数を用います。 ソーベルフィルタは、画像のエッジを検出することで、位置決めや寸法計測などに用いられます。 ソーベルフィルタ処理の構文 Sobel( src, ddepth, dx...