Heim > Artikel > Backend-Entwicklung > 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.
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
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
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')
转换为灰度图像
由于轮廓提取通常在灰度图像上进行,因此需要将彩色图像转换为灰度图像。可以使用OpenCV的cvtColor
函数实现。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
使用阈值进行二值化处理
轮廓提取常常通过对图像进行二值化处理来实现。可以使用OpenCV的threshold
函数将灰度图像转化为二值图像。
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
进行轮廓提取
使用OpenCV的findContours
函数对二值图像进行轮廓提取。该函数会返回提取得到的轮廓以及层次结构。
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
绘制轮廓
可以使用OpenCV的drawContours
函数将提取得到的轮廓绘制在原始图像上。
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
显示结果
最后使用OpenCV的imshow
函数显示结果。
cv2.imshow('Contours', image) cv2.waitKey(0) cv2.destroyAllWindows()
完整代码示例:
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()
结论:
本文介绍了如何使用Python中的OpenCV库对图片进行轮廓提取。通过对图像进行灰度转换、二值化处理和使用findContours
rrreee
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!