Heim > Backend-Entwicklung > Python-Tutorial > So extrahieren Sie mit Python Konturen aus Bildern

So extrahieren Sie mit Python Konturen aus Bildern

王林
Freigeben: 2023-08-26 16:33:30
Original
2185 Leute haben es durchsucht

So extrahieren Sie mit Python Konturen aus Bildern

So verwenden Sie Python zur Konturextraktion von Bildern

Einführung:
In den Bereichen Bildverarbeitung und Computer Vision ist die Konturextraktion eine sehr wichtige Aufgabe. Es kann das Zielobjekt im Bild vom Hintergrund trennen und die Formkanteninformationen des Objekts extrahieren. In diesem Artikel wird erläutert, wie Sie mit der OpenCV-Bibliothek in Python Konturen aus Bildern extrahieren.

  1. Installieren Sie die OpenCV-Bibliothek
    Bevor Sie beginnen, müssen Sie sicherstellen, dass die OpenCV-Bibliothek installiert wurde. Sie können es mit dem pip-Befehl installieren:

    pip install opencv-python
    Nach dem Login kopieren
  2. Importieren Sie die erforderlichen Bibliotheken
    Zuerst müssen wir die OpenCV-Bibliothek und die Numpy-Bibliothek importieren. OpenCV wird für die Bildverarbeitung und Numpy für Array-Operationen verwendet.

    import cv2
    import numpy as np
    Nach dem Login kopieren
  3. Bilder laden
    Verwenden Sie die imread-Funktion von OpenCV, um Bilder zu laden. Das Beispielbild wird lokal gespeichert und der Pfad kann entsprechend der tatsächlichen Situation geändert werden. imread函数加载图片。示例图片保存在本地,可以根据实际情况修改路径。

    image = cv2.imread('path/to/image.jpg')
    Nach dem Login kopieren
  4. 转换为灰度图像
    由于轮廓提取通常在灰度图像上进行,因此需要将彩色图像转换为灰度图像。可以使用OpenCV的cvtColor函数实现。

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    Nach dem Login kopieren
  5. 使用阈值进行二值化处理
    轮廓提取常常通过对图像进行二值化处理来实现。可以使用OpenCV的threshold函数将灰度图像转化为二值图像。

    _, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
    Nach dem Login kopieren
  6. 进行轮廓提取
    使用OpenCV的findContours函数对二值图像进行轮廓提取。该函数会返回提取得到的轮廓以及层次结构。

    contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    Nach dem Login kopieren
  7. 绘制轮廓
    可以使用OpenCV的drawContours函数将提取得到的轮廓绘制在原始图像上。

    cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
    Nach dem Login kopieren
  8. 显示结果
    最后使用OpenCV的imshow函数显示结果。

    cv2.imshow('Contours', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    Nach dem Login kopieren

完整代码示例:

import cv2
import numpy as np

# 加载图片
image = cv2.imread('path/to/image.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化处理
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 轮廓提取
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# 绘制轮廓
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)

# 显示结果
cv2.imshow('Contours', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Nach dem Login kopieren

结论:
本文介绍了如何使用Python中的OpenCV库对图片进行轮廓提取。通过对图像进行灰度转换、二值化处理和使用findContoursrrreee

🎜🎜In Graustufenbild konvertieren🎜Da die Konturextraktion normalerweise bei Graustufenbildern durchgeführt wird, müssen Farbbilder in Graustufenbilder konvertiert werden. Dies kann mit der Funktion cvtColor von OpenCV erreicht werden. 🎜rrreee🎜🎜🎜Binarisierung mithilfe von Schwellenwerten🎜Die Konturextraktion wird häufig durch Binarisierung des Bildes erreicht. Sie können die Funktion threshold von OpenCV verwenden, um Graustufenbilder in Binärbilder umzuwandeln. 🎜rrreee🎜🎜🎜Konturextraktion🎜Verwenden Sie die Funktion findContours von OpenCV, um die Konturextraktion für Binärbilder durchzuführen. Diese Funktion gibt die extrahierten Konturen und Hierarchien zurück. 🎜rrreee🎜🎜🎜Konturen zeichnen🎜Sie können die Funktion drawContours von OpenCV verwenden, um die extrahierten Konturen auf dem Originalbild zu zeichnen. 🎜rrreee🎜🎜🎜Zeigen Sie die Ergebnisse an🎜Verwenden Sie schließlich die imshow-Funktion von OpenCV, um die Ergebnisse anzuzeigen. 🎜rrreee🎜🎜Vollständiges Codebeispiel: 🎜rrreee🎜Fazit: 🎜Dieser Artikel stellt vor, wie man die OpenCV-Bibliothek in Python verwendet, um die Konturextraktion von Bildern durchzuführen. Durch die Durchführung einer Graustufenkonvertierung und Binärisierung des Bildes und die Verwendung der Funktion findContours zum Extrahieren von Konturen können die extrahierten Konturen schließlich auf dem Originalbild gezeichnet werden. Die Konturextraktion kann häufig in der Bildverarbeitung, Computer Vision, Zielerkennung und anderen Bereichen eingesetzt werden und ist eine sehr praktische Technologie. 🎜

Das obige ist der detaillierte Inhalt vonSo extrahieren Sie mit Python Konturen aus Bildern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage