Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでscikit-learnを使用して画像の輪郭を見つける方法は?


Scikit-learnは、一般にsklearnとして知られ、機械学習アルゴリズムを実装する目的で使用されるPythonのライブラリです。オープンソースのライブラリであるため、無料でご利用いただけます。このライブラリは、Numpy、SciPy、およびMatplotlibライブラリに基づいて構築されています。

「正方形をマーチング」する方法は、画像の輪郭を見つけるために使用されます。 「skimage」ライブラリの「measure」クラスにある関数「find_contours」が使用されます。この場合、配列に存在する値は線形に補間されます。

このようにして、出力画像の輪郭の精度が大幅に向上します。画像の輪郭が交差している場合は輪郭が開いており、交差していない場合は閉じています。

scikit-learnライブラリを使用して画像内の輪郭を見つける方法を理解しましょう-

import numpy as np
import matplotlib.pyplot as plt
from skimage import measure
x, y = np.ogrid[-6.7:np.pi:215j, -1.2:np.pi:215j]
r = np.sin(np.exp((np.sin(x)**3 + np.cos(y)**2)))
contours = measure.find_contours(r, 0.8)
fig, ax = plt.subplots()
ax.imshow(r, cmap=plt.cm.gray)
for contour in contours:
ax.plot(contour[:, 1], contour[:, 0], linewidth=2)
ax.axis('Image')
ax.set_xticks([])
ax.set_yticks([])
plt.show()

出力

Pythonでscikit-learnを使用して画像の輪郭を見つける方法は?

説明

  • 必要なパッケージが環境にインポートされます。

  • データはNumPyパッケージを使用して生成されます。

  • 関数「find_contours」は、画像の輪郭を決定するために使用されます。

  • 「サブプロット」機能は、元の画像と輪郭のある画像をコンソールに表示するために使用されます。


  1. PythonでOpenCVを使用して輪郭を検索して描画する

    画像分析の目的で、Opencv(Open Source Computer Vision Library)pythonライブラリを使用します。 opencvのインストール後にインポートする必要のあるライブラリ名はcv2です。 以下の例では、画像ファイルに存在する輪郭を見つけます。輪郭は、画像に存在する形状を識別するのに役立ちます。等高線は、同じ強度を持つ画像の境界に沿ったすべての点を結ぶ線として定義されます。 OPenCVのfindContours関数は、輪郭を識別するのに役立ちます。同様に、drawContours関数は、輪郭を描画するのに役立ちます。以下は両方の構文です。 構文 cv.Fi

  2. Pythonを使用した畳み込み?

    画像認識は、線形回帰や類似性の比較など、はるかに単純な方法を使用して行われていました。手書きのアルファベットを認識するという単純な作業でさえ、結果は明らかにあまり良くありませんでした。畳み込みニューラルネットワーク(CNN)は、画像を知覚するときに人間の脳の神経活動を大まかにシミュレートする計算上安価な方法を提供することにより、従来の方法から一歩進んだものになるはずです。 畳み込みニューラルネットワークの概要 さまざまなオブジェクトを認識する方法と非常によく似ていますが、コンピュータアルゴリズムは、入力を一般化し、これまでに見たことのない画像を判断する前に、何百万もの画像を調べる必要が