Heim > Artikel > Backend-Entwicklung > So markieren Sie Bilder mit Python
So verwenden Sie Python zum Beschriften von Bildern mit Formen
Einführung:
Im Bereich der Bildverarbeitung und Computer Vision ist das Beschriften und Identifizieren von Objekten in Bildern eine wichtige Aufgabe. Die Form des markierten Objekts kann für Anwendungen wie Objekterkennung, Kantenerkennung und Konturextraktion verwendet werden. In diesem Artikel wird erläutert, wie Sie mit Python und der OpenCV-Bibliothek Bilder mit Formen beschriften.
Schritt 1: Installieren Sie die erforderlichen Bibliotheken
Bevor wir beginnen, müssen wir die Python- und OpenCV-Bibliotheken installieren. Sie können die OpenCV-Bibliothek über den Befehl pip installieren. Der spezifische Befehl lautet wie folgt:
pip install opencv-python
Schritt 2: Importieren Sie die erforderlichen Bibliotheken
Im Code müssen wir die OpenCV-Bibliothek und einige andere Hilfsbibliotheken importieren. Der spezifische Code lautet wie folgt:
import cv2 import numpy as np
Schritt 3: Lesen Sie die Bilddatei
Verwenden Sie die Funktion imread()
der OpenCV-Bibliothek, um die Bilddatei zu lesen. Der spezifische Code lautet wie folgt: imread()
函数可以读取图像文件。具体代码如下:
img = cv2.imread('image.jpg')
步骤四:将图像转换为灰度图像
在进行形状标记之前,我们需要将图像转换为灰度图像。使用OpenCV库的cvtColor()
函数可以实现。具体代码如下:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
步骤五:进行阈值分割
将灰度图像进行阈值分割可以得到二值图像,方便后续形状标记的操作。使用OpenCV库的threshold()
函数可以实现。具体代码如下:
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
步骤六:查找轮廓
使用OpenCV库的findContours()
函数可以查找图像中的轮廓。具体代码如下:
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
步骤七:绘制轮廓
使用OpenCV库的drawContours()
函数可以将轮廓绘制在图像上。具体代码如下:
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
步骤八:显示结果
使用OpenCV库的imshow()
cv2.imshow('Contours', img) cv2.waitKey(0) cv2.destroyAllWindows()Schritt 4: Konvertieren Sie das Bild in ein GraustufenbildBevor wir die Formbeschriftung durchführen, müssen wir das Bild in ein Graustufenbild konvertieren. Dies kann mit der Funktion
cvtColor()
der OpenCV-Bibliothek erreicht werden. Der spezifische Code lautet wie folgt: import cv2 import numpy as np # 读取图像文件 img = cv2.imread('image.jpg') # 将图像转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 进行阈值分割 _, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 查找轮廓 contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 绘制轮廓 cv2.drawContours(img, contours, -1, (0, 255, 0), 3) # 显示结果 cv2.imshow('Contours', img) cv2.waitKey(0) cv2.destroyAllWindows()Schritt 5: Schwellenwertsegmentierung durchführenDurch die Schwellenwertsegmentierung des Graustufenbilds kann ein Binärbild erhalten werden, das nachfolgende Formbeschriftungsvorgänge erleichtert. Dies kann mit der Funktion
threshold()
der OpenCV-Bibliothek erreicht werden. Der spezifische Code lautet wie folgt: 🎜rrreee🎜Schritt 6: Konturen finden🎜🎜Verwenden Sie die Funktion findContours()
der OpenCV-Bibliothek, um Konturen im Bild zu finden. Der spezifische Code lautet wie folgt: 🎜rrreee🎜Schritt 7: Zeichnen Sie die Kontur🎜🎜Verwenden Sie die Funktion drawContours()
der OpenCV-Bibliothek, um die Kontur auf dem Bild zu zeichnen. Der spezifische Code lautet wie folgt: 🎜rrreee🎜Schritt 8: Ergebnisse anzeigen🎜🎜Verwenden Sie die Funktion imshow()
der OpenCV-Bibliothek, um das verarbeitete Bild anzuzeigen. Der spezifische Code lautet wie folgt: 🎜rrreee🎜Vollständiges Codebeispiel: 🎜rrreee🎜Fazit: 🎜🎜In diesem Artikel wird erläutert, wie Sie mit Python und der OpenCV-Bibliothek Formbeschriftungen für Bilder durchführen. Durch die Implementierung des Codebeispiels können die Konturen von Objekten im Bild extrahiert und markiert werden, um nachfolgende Bildverarbeitungs- und Computer-Vision-Anwendungen zu erleichtern. Entsprechend den eigenen Bedürfnissen und tatsächlichen Gegebenheiten kann der Leser entsprechende Anpassungen und Erweiterungen vornehmen. Ich hoffe, dieser Artikel ist für die Leser hilfreich! 🎜Das obige ist der detaillierte Inhalt vonSo markieren Sie Bilder mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!