Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang opencv perpustakaan penglihatan komputer dalam Python

Penjelasan terperinci tentang opencv perpustakaan penglihatan komputer dalam Python

PHPz
PHPzasal
2023-06-10 20:09:053241semak imbas

Penglihatan komputer ialah satu cabang kecerdasan buatan yang dikhususkan untuk menggunakan komputer untuk mensimulasikan dan merealisasikan fungsi sistem visual manusia. Dalam konteks pembangunan sains dan teknologi moden, visi komputer digunakan secara meluas dalam pelbagai bidang, seperti robotik, keselamatan, penjagaan perubatan, pemanduan autonomi, dll.

OpenCV (Open Source Computer Vision) ialah perpustakaan penglihatan komputer sumber terbuka merentas platform yang dimulakan dan diselenggara oleh Intel Corporation. Ia menyediakan pemprosesan imej yang kaya dan fungsi penglihatan komputer, termasuk pengesanan imej, pengekstrakan ciri, penjejakan sasaran, pengecaman muka, dsb. Populariti Python dalam bidang pembelajaran mesin dan sains data juga telah menjadikan versi OpenCV dalam Python menarik banyak perhatian. Artikel ini akan memperkenalkan penggunaan dan pelaksanaan khusus OpenCV dalam Python.

Pasang OpenCV

Sebelum menggunakan OpenCV, anda perlu memasang perpustakaan dan kebergantungan yang berkaitan. Dalam Python, anda boleh menggunakan arahan pip untuk memasang.

pip install opencv-python

pip install opencv-contrib-python

Dua arahan ini masing-masing memasang versi asas dan versi lanjutan OpenCV versi lanjutan termasuk beberapa Ciri asas tidak tersedia dalam versi.

Membaca dan memaparkan imej

Langkah pertama dalam menggunakan OpenCV untuk memproses imej ialah membaca imej ke dalam program. OpenCV menyediakan fungsi cv2.imread() untuk membaca imej Imej yang dibaca disimpan dalam bentuk tatasusunan NumPy.

import cv2

img = cv2.imread('example.jpg')

Selepas membaca imej, anda boleh menggunakan fungsi cv2.imshow() untuk memaparkan gambar . Fungsi ini mengambil dua parameter, parameter pertama ialah nama tetingkap, dan parameter kedua ialah imej yang akan dipaparkan.

cv2.imshow('example', img)

Gunakan fungsi cv2.waitKey() untuk menunggu pengguna menekan sebarang kekunci dan tetingkap akan ditutup secara automatik.

cv2.waitKey(0)

Saiz imej boleh diperoleh menggunakan img.shape, yang mengembalikan tiga kali ganda (tinggi, lebar, kedalaman), dengan ketinggian mewakili ketinggian imej, Lebar mewakili lebar imej, dan kedalaman mewakili bilangan bit setiap piksel. Kedalaman ialah 3 jika imej ialah imej berwarna dan 1 untuk imej skala kelabu.

Pemprosesan dan pengendalian imej

OpenCV menyediakan pelbagai fungsi pemprosesan dan operasi imej. Antaranya, yang paling mudah ialah pemprosesan skala kelabu, yang menukar imej berwarna kepada imej skala kelabu Ini memerlukan penggunaan fungsi cv2.cvtColor().

kelabu = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.COLOR_BGR2GRAY ditakrifkan dalam pemprosesan skala kelabu, dengan cv2 ialah nama modul OpenCV. Format imej terbina dalam OpenCV ialah BGR, bukan RGB biasa, jadi susunan parameternya ialah BGR.

Selain pemprosesan skala kelabu, terdapat juga beberapa fungsi operasi yang biasa digunakan, seperti melaraskan saiz imej, putaran, terjemahan, dsb.

Operasi penskalaan imej

saiz semula = cv2.resize(img, (600, 600), interpolation=cv2.INTER_AREA)

Operasi membalikkan imej

terbalik = cv2.flip(img, -1)

Kendalian putaran imej

(baris, kol) = img.shape[:2]
M = cv2.getRotationMatrix2D ((cols / 2, baris / 2), 45, 1)
diputar = cv2.warpAffine(img, M, (cols, rows))

Pengekstrakan dan pengesanan ciri imej

Selain itu kepada pemprosesan dan operasi imej asas, OpenCV juga menyediakan pelbagai fungsi pengekstrakan dan pengesanan ciri. Fungsi ini boleh mengesan dan mengekstrak ciri dalam imej, seperti bucu, garisan dan kontur.

Pengesanan sudut ialah teknologi yang digunakan secara meluas dalam bidang penglihatan mesin dan penglihatan komputer. Ia boleh digunakan untuk aplikasi seperti padanan imej, penjejakan sasaran dan pembinaan semula tiga dimensi. OpenCV menyediakan fungsi cv2.goodFeaturesToTrack() untuk melengkapkan pengesanan sudut.

kelabu = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sudut = cv2.goodFeaturesToTrack(kelabu, 100, 0.01, 10)
sudut = np.int0(sudut> Antaranya, parameter kelabu ialah imej yang diproses skala kelabu, parameter 100 mewakili bilangan titik sudut yang dikesan, parameter 0.01 ialah QualityLevel, yang digunakan untuk mewakili faktor kualiti sudut, dan parameter 10 ialah minDistance, yang mewakili jarak minimum antara dua titik sudut.

Selain itu, terdapat kaedah pengesanan ciri lain, seperti SIFT, SURF dan ORB.

Kesimpulan

OpenCV ialah perpustakaan penglihatan komputer yang berkuasa yang digunakan secara meluas dalam pelbagai bidang. Dalam Python, pemprosesan imej dan tugas penglihatan komputer boleh dilaksanakan dengan mudah menggunakan OpenCV. Artikel ini memperkenalkan penggunaan asas dan operasi biasa OpenCV dalam Python Saya harap ia akan membantu pembaca.

Atas ialah kandungan terperinci Penjelasan terperinci tentang opencv perpustakaan penglihatan komputer dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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