Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membentuk-tanda imej menggunakan Python
Cara menggunakan Python untuk melabelkan imej dengan bentuk
Pengenalan:
Dalam bidang pemprosesan imej dan penglihatan komputer, melabel dan mengenal pasti objek dalam imej adalah tugas penting. Bentuk objek yang ditanda boleh digunakan untuk aplikasi seperti pengesanan objek, pengesanan tepi dan pengekstrakan kontur. Artikel ini akan memperkenalkan cara menggunakan Python dan perpustakaan OpenCV untuk melabelkan imej dengan bentuk.
Langkah 1: Pasang perpustakaan yang diperlukan
Sebelum kita mula, kita perlu memasang perpustakaan Python dan OpenCV. Anda boleh memasang perpustakaan OpenCV melalui arahan pip Perintah khusus adalah seperti berikut:
pip install opencv-python
Langkah 2: Import perpustakaan yang diperlukan
Dalam kod, kita perlu mengimport perpustakaan OpenCV dan beberapa perpustakaan tambahan lain. Kod khusus adalah seperti berikut:
import cv2 import numpy as np
Langkah 3: Baca fail imej
Gunakan fungsi imread()
pustaka OpenCV untuk membaca fail imej. Kod khusus adalah seperti berikut: 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()Langkah 4: Tukar imej kepada imej skala kelabuSebelum melakukan pelabelan bentuk, kita perlu menukar imej kepada imej skala kelabu. Ini boleh dicapai menggunakan fungsi
cvtColor()
pustaka OpenCV. Kod khusus adalah seperti berikut: 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()Langkah 5: Lakukan segmentasi ambangSegmentasi ambang imej skala kelabu boleh mendapatkan imej binari, yang memudahkan operasi pelabelan bentuk seterusnya. Ini boleh dicapai menggunakan fungsi
threshold()
pustaka OpenCV. Kod khusus adalah seperti berikut: 🎜rrreee🎜Langkah 6: Cari kontur🎜🎜Gunakan fungsi findContours()
pustaka OpenCV untuk mencari kontur dalam imej. Kod khusus adalah seperti berikut: 🎜rrreee🎜Langkah 7: Lukis kontur🎜🎜Gunakan fungsi drawContours()
pustaka OpenCV untuk melukis kontur pada imej. Kod khusus adalah seperti berikut: 🎜rrreee🎜Langkah 8: Paparkan keputusan🎜🎜Gunakan fungsi imshow()
pustaka OpenCV untuk memaparkan imej yang diproses. Kod khusus adalah seperti berikut: 🎜rrreee🎜Contoh kod penuh: 🎜rrreee🎜Kesimpulan: 🎜🎜Artikel ini memperkenalkan cara menggunakan Python dan perpustakaan OpenCV untuk melaksanakan pelabelan bentuk pada imej. Dengan melaksanakan contoh kod, kontur objek dalam imej boleh diekstrak dan ditanda untuk memudahkan pemprosesan imej dan aplikasi penglihatan komputer seterusnya. Pembaca boleh membuat pelarasan dan pengembangan yang sepadan mengikut keperluan dan situasi sebenar mereka sendiri. Semoga artikel ini bermanfaat kepada pembaca! 🎜Atas ialah kandungan terperinci Bagaimana untuk membentuk-tanda imej menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!