Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan Python untuk mengekstrak kontur daripada gambar
Cara menggunakan Python untuk melakukan pengekstrakan kontur pada gambar
Pengenalan:
Dalam bidang pemprosesan imej dan penglihatan komputer, pengekstrakan kontur adalah tugas yang sangat penting. Ia boleh memisahkan objek sasaran dalam imej dari latar belakang dan mengekstrak maklumat tepi bentuk objek. Artikel ini akan memperkenalkan cara menggunakan perpustakaan OpenCV dalam Python untuk mengekstrak kontur daripada imej.
Pasang perpustakaan OpenCV
Sebelum anda bermula, anda perlu memastikan bahawa perpustakaan OpenCV telah dipasang. Anda boleh memasangnya menggunakan arahan pip:
pip install opencv-python
Import perpustakaan yang diperlukan
Pertama, kita perlu mengimport perpustakaan OpenCV dan perpustakaan numpy. OpenCV digunakan untuk pemprosesan imej dan numpy digunakan untuk operasi tatasusunan.
import cv2 import numpy as np
Muat imej
Gunakan fungsi imread
OpenCV untuk memuatkan imej. Imej sampel disimpan secara setempat, dan laluan boleh diubah suai mengikut situasi sebenar. 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
OpenCV. 🎜rrreee🎜🎜🎜Penduaan menggunakan ambang🎜Pengestrakan kontur selalunya dicapai dengan menduakan imej. Anda boleh menggunakan fungsi ambang
OpenCV untuk menukar imej skala kelabu kepada imej binari. 🎜rrreee🎜🎜🎜Pengestrakan kontur🎜Gunakan fungsi findContours
OpenCV untuk melaksanakan pengekstrakan kontur pada imej binari. Fungsi ini mengembalikan kontur dan hierarki yang diekstrak. 🎜rrreee🎜🎜🎜Melukis kontur🎜Anda boleh menggunakan fungsi drawContours
OpenCV untuk melukis kontur yang diekstrak pada imej asal. 🎜rrreee🎜🎜🎜Paparkan keputusan🎜Akhir sekali gunakan fungsi imshow
OpenCV untuk memaparkan hasil. 🎜rrreee🎜🎜Contoh kod penuh: 🎜rrreee🎜Kesimpulan: 🎜Artikel ini memperkenalkan cara menggunakan perpustakaan OpenCV dalam Python untuk melaksanakan pengekstrakan kontur pada imej. Dengan melakukan penukaran skala kelabu dan perduaan pada imej dan menggunakan fungsi findContours
untuk mengekstrak kontur, kontur yang diekstrak akhirnya boleh dilukis pada imej asal. Pengekstrakan kontur boleh digunakan secara meluas dalam pemprosesan imej, penglihatan komputer, pengesanan sasaran dan bidang lain, dan merupakan teknologi yang sangat praktikal. 🎜Atas ialah kandungan terperinci Cara menggunakan Python untuk mengekstrak kontur daripada gambar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!