OpenCV

OpenCV

【OpenCV-Python】JPEG画像の品質を指定して保存する

OpenCVで画像をファイルに保存するには imwrite 関数を用いますが、この関数でjpegファイルの品質を指定して保存することが可能です。 imwrite関数の書式は imwrite(filename, img) ->retval 引...
OpenCV

【OpenCV-Python】ヒストグラムの取得、表示

ここでは、ヒストグラムの取得方法と、取得したヒストグラムをmatplotlibで表示する方法を紹介したいと思います。 ヒストグラムの取得方法 OpenCVでヒストグラムを取得するには calcHist()関数を用います。 calcHist(...
OpenCV

【OpenCV-Python】アフィン変換(同次座標系を使用)

アフィン変換については、こちら↓のページ で、紹介していますが、回転や拡大縮小、平行移動などは3行3列の行列を使った同次座標系を用いるのが便利ですよ! と言っているのですが、OpenCVでは、2行3列の行列を使ったアフィン変換となります。 ...
OpenCV

【OpenCV-Python】ラベリング(connectedComponents)

ラベリングとは、二値化された画像において、画素がつながっている領域に対して同じ番号(ラベル)を与える処理のことを言います。 このつながっている領域のことをブロブ(blob)といいますが、このブロブに対して、面積や幅、高さなどを求め、キズや打...
OpenCV

【OpenCV-Python】円近似(疑似逆行列を用いた方法)

OpenCVには座標を楕円で近似する関数(fitEllipse)はあるものの、円で近似するfitCircle()のような関数はありません。 そこで、最小二乗法的に座標を円で近似するfitCircle()関数を作ってみました。 円の最小二乗法...
OpenCV

【OpenCV-Python】円形度

円形度とは、図形の面積と周囲長の関係から、円らしさの値を求めます。 円形度の詳細は以下のページを参照ください。 OpenCV的には、図形の面積はcontourArea()関数で、周囲長はarcLength()関数で求める事ができるので、これ...
OpenCV

【OpenCV-Python】輪郭の周囲長(arcLength)

findContours()関数などで取得した輪郭の座標から輪郭の長さを求めるにはarcLength()関数を用います。 構文 arcLength(curve, closed) ->retval curve 輪郭を構成する輪郭のxy座標(x...
OpenCV

【OpenCV-Python】輪郭(contour)の矩形領域の取得

OpenCVのfindContours関数などで得られた点の座標から、点を囲う矩形領域(四角形の領域)を取得するにはboundingRect関数を用います。 さらに、傾きを考慮した矩形領域を取得するにはminAreaRect関数を用います。...
OpenCV

【OpenCV-Python】輪郭(contour)の面積(contourArea)

OpenCVで二値化された領域の輪郭座標は、findContours関数を使えば取得することができます。 このときの戻り値である輪郭情報(contours)をcontourArea関数へ渡し面積を求めます。 ただし、求まる面積は、あくまでも...
OpenCV

【OpenCV-Python】findContoursによる輪郭検出

OpenCV(Python)で二値化された画像中の白の部分の外側の輪郭のデータを取得するにはfindContours()関数を用います。 黒の部分の輪郭は、白の部分の内側の輪郭という認識になります。 findContours()関数で取得で...
OpenCV

【OpenCV/Python】画像ファイルの読み込み、表示

OpenCVでBmpやJpegなどの画像ファイルを開くには、imread関数を用います。 開いた画像データはimshow関数でウィンドウ付きで画像を表示します。 実際に画像が表示されるのは、waitKey関数が呼ばれたタイミングとなります。...
OpenCV

【OpenCV/Python】ドキュメントの場所

OpenCVの公式ホームページは以下の場所になります。 Pythonに関する情報は、まだ少ない気もしますが、各関数のマニュアルは下記のページから参照します。 各関数の引数や戻り値は、使用するOpenCVのバージョンによっても異なる場合がある...
OpenCV

【OpenCV/Python】imreadで画像ファイルが読み込めないときの対応

opencv-pythonのimreadで画像を開き、以下のようなフィルタ処理を行うプログラムを実行すると、エラーが表示される場合があります。 import cv2 # OpenCVで画像ファイルを開く img = cv2.imread("...
OpenCV

【OpenCV/Python】日本語の画像ファイル読込・保存

OpenCVで画像ファイルを開くとき、ファイル名やパスに日本語が含まれていると、画像ファイルを開いてくれません。 試しに以下のようなコードを実行すると、エラーが起き実行できません。 import cv2 # OpenCVで画像ファイルを開く...
OpenCV

【OpenCV/Python】adaptiveThresholdの処理アルゴリズム

自動でしきい値を決めて二値化してくれる画像処理と言えば、大津の二値化ですが、OpenCVにはadaptiveThreshold(適応的しきい値処理)という良さげな処理があります。 この adaptiveThreshold は画像全体に影や照...
Anaconda

【Python】OpenCVをAnacondaでインストール(Windows編)

PythonでOpenCVのインストール方法を検索すると、macOSやLinuxの情報が多く、Windowsのインストール方法が何だか少ない。。 まだ、よく分かっていないのですが、とりあえずAnacondaを使ってOpenCVのインストール...