PythonでOpenCVを使用して輪郭を検索して描画する
画像分析の目的で、Opencv(Open Source Computer Vision Library)pythonライブラリを使用します。 opencvのインストール後にインポートする必要のあるライブラリ名はcv2です。
以下の例では、画像ファイルに存在する輪郭を見つけます。輪郭は、画像に存在する形状を識別するのに役立ちます。等高線は、同じ強度を持つ画像の境界に沿ったすべての点を結ぶ線として定義されます。 OPenCVのfindContours関数は、輪郭を識別するのに役立ちます。同様に、drawContours関数は、輪郭を描画するのに役立ちます。以下は両方の構文です。
構文
cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE) Where image is the name of the image Mode is Contour retrieval mode Method is Contour approximation method cv.DrawContours(img, contours, contourIdx, colour, thickness) Where image is the name of the image contours – All the input contours. contourIdx – Parameter indicating a contour to draw. If it is negative, all the contours are drawn. color – Color of the contours thickness is how thick are the lines drawing the contour
例
以下の例では、以下の画像を入力画像として使用しています。次に、以下のプログラムを実行して、周囲の輪郭を取得します。
上の図には3つの形があります。以下のプログラムを使用して、それらのすべてまたは一部の周りに輪郭を描くことができます。
例
import cv2 # Load an image image = cv2.imread(“path to image file”) # Changing the colour-space LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV) # Find edges edges = cv2.Canny(LUV, 10, 100) # Find Contours contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # Find Number of contours print("Number of Contours is: " + str(len(contours))) # Draw yellow border around two contours cv2.drawContours(image, contours, 0, (0, 230, 255), 6) cv2.drawContours(image, contours, 2, (0, 230, 255), 6) # Show the image with contours cv2.imshow('Contours', image) cv2.waitKey(0)
上記のコードを実行すると、次の結果が得られます-
出力
Number of Contours found = 3
そして、以下の出力を示す図が表示されます。
-
PythonOpenCvモジュールを使用したヒストグラムの等化
これは、画像のヒストグラムを使用してコントラスト調整を行う画像処理の方法です。 実際、この方法は通常、多くの画像のグローバルコントラストを増加させます。特に、画像の使用可能なデータが近いコントラスト値で表される場合、この調整により、強度をヒストグラム上でより適切に分散でき、ローカルコントラストの低い領域が可能になります。より高いコントラストを得る。 OpenCVにはこれを行う関数cv2.equalizeHist()があり、その入力は単なるグレースケール画像であり、出力はヒストグラム均等化された画像です。 この手法は、画像のヒストグラムが特定の領域に限定されている場合に適しています。強度の
-
PythonでOpenCVを使用した画像の侵食と拡張
この問題では、PythonがOpenCVモジュールを使用して侵食や膨張などの形態学的操作を実行する方法を確認します。 OpenCVライブラリは、主にコンピュータビジョン用に設計されています。オープンソースです。もともとはIntelによって設計されました。これは、オープンソースBSDライセンスの下で無料で使用できます。 OpenCV機能を使用するには、 pipを使用してダウンロードする必要があります 。 sudo pip3 install opencv-python Erosion Imageとは何ですか? 侵食では、前景オブジェクトの境界を侵食します。これは、画像から小さなホワイトノ