Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan Python untuk mengekstrak kontur daripada gambar

Cara menggunakan Python untuk mengekstrak kontur daripada gambar

王林
Lepaskan: 2023-08-26 16:33:30
asal
2185 orang telah melayarinya

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.

  1. Pasang perpustakaan OpenCV
    Sebelum anda bermula, anda perlu memastikan bahawa perpustakaan OpenCV telah dipasang. Anda boleh memasangnya menggunakan arahan pip:

    pip install opencv-python
    Salin selepas log masuk
  2. 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
    Salin selepas log masuk
  3. 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')
    Salin selepas log masuk
  4. 转换为灰度图像
    由于轮廓提取通常在灰度图像上进行,因此需要将彩色图像转换为灰度图像。可以使用OpenCV的cvtColor函数实现。

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

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

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

    cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
    Salin selepas log masuk
  8. 显示结果
    最后使用OpenCV的imshow函数显示结果。

    cv2.imshow('Contours', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    Salin selepas log masuk

完整代码示例:

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()
Salin selepas log masuk

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

🎜🎜Tukar kepada imej skala kelabu🎜Memandangkan pengekstrakan kontur biasanya dilakukan pada imej skala kelabu, imej berwarna perlu ditukar kepada imej skala kelabu. Ia boleh dilaksanakan menggunakan fungsi 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan