Cài đặt và sử dụng thư viện OpenCV trong Python với Visual Code
Đăng lúc: 10:48 AM - 24/12/2023 bởi Charles Chung - 3085Trong bài này tôi sẽ hướng dẫn các bạn cài đặt và sử dụng thư viện OpenCV trong Pyhon 3.x, đọc, ghi và hiển thị hình ảnh trong Python sử dụng OpenCV.
Giới thiệu về OpenCV
- OpenCV viết tắt của Open Source Computer Vision được xem là một trong những thư viện mã nguồn mở hàng đầu cho việc xử lý ảnh theo thời gian thực.
- OpenCV chính thức được ra mắt đầu tiên vào năm 1999, OpenCV là thư viện mã nguồn mở miễn phí cho cả học thuật và thương mại.
- OpenCV hỗ trợ đa nền tảng gồm Windows, Linux, Mac OS, iOS và Android.
- OpenCV hỗ trợ ngôn ngữ lập trình C/C++, Python và Java.
- OpenCV được viết bằng C / C ++ và tích hợp OpenCL.
- Thư viện có hơn 2500 thuật toán được tối ưu hóa.
Các tính năng của OpenCV
- Bộ công cụ hỗ trợ 2D và 3D
- Nhận diện khuôn mặt
- Nhận diện cử chỉ
- Nhận dạng chuyển động, đối tượng, hành vi,
- Tương tác giữa con người và máy tính
- Điều khiển Robot
- Hỗ trợ thực tế tăng cường
Ứng dụng OpenCV trong thế giới thực
- Giám sát tự động
- Tìm kiếm, phục hồi, xử lý ảnh
- Nhận dạng khuôn mặt, cử chỉ.
- Nhận dạng chữ viết, con số, ký tự.
Cài đặt Python và sử dụng thư viện OpenCV các bạn xem 2 bài dưới đây
- Hướng dẫn cài đặt Python và sử dụng Visual Studio Code
- Hướng dẫn cài đặt Python 3.10 trên Windows 10 và các thư viện Cơ bản-Học máy-Âm thanh-Hình ảnh-Video
Đọc hình ảnh
Để đọc hình ảnh chúng ta sử dụng hàm imread trong OpenCV với cú pháp sau
cv2.imread(filename, flags)
Hàm nhận vào 2 tham số
- filename: là đường dẫn đầy đủ của tệp tin hình ảnh
- flags: là hằng số chỉ ra hình ảnh sẽ đọc lên với màu sắc gì (mặc định là 1)
cv2.IMREAD_UNCHANGED
or-1
cv2.IMREAD_GRAYSCALE
or0
cv2.IMREAD_COLOR
or1
Hiển thị hình ảnh
Để hiển thị hình ảnh chúng ta sử dụng hàm imshow trong OpenCV với cú pháp sau
cv2.imshow(window_name, image)
Hàm nhận vào 2 tham số
- window_name: là tên cửa sổ hiển thị hình ảnh
- image: là hình ảnh bạn muốn hiển thị
Hàm imshow được thiết kế sử dụng kèm với hàm waitKey() và destroyAllWindows()/destroyWindow(). Trong đó hàm waitKey() sẽ nhận vào tham số milliseconds cho cửa sổ hiển thị ảnh, hàm destroyAllWindows() sử dụng để hủy các cửa sổ đã tạo.
Ghi hình ảnh
Để ghi hình ảnh chúng ta sử dụng hàm imwrite trong OpenCV với cú pháp sau
imwrite(filename, image)
Hàm nhận vào 2 tham số
- filename: là đường dẫn đầy đủ của tệp tin hình ảnh
- image: là hình ảnh bạn muốn hiển thị
Sau đây chúng ta sẽ xem 1 ví dụ, đọc 1 hình ảnh từ thư mục images và hiển thị lên với màu gray, cuối cùng sẽ ghi vào một tệp tin "images/hoa-hong-gray.jpg"
1 2 3 4 5 6 7 8 9 10 11 12 |
# import thư viện import cv2 # sử dụng hàm imread để đọc hình ảnh img_gray=cv2.imread('images/hoa-hong.jpg',0) # hiển thị hình ảnh với màu gray cv2.imshow('hoa-hong',img_gray) # đợi đến khi nhấn 1 phím bất kỳ thì thoát, 0 là hiển thị mãi mãi cv2.waitKey(0) # hủy tất cả các sửa sổ đã tạo cv2.destroyAllWindows() # sử dụng hàm imwrite để ghi hình ảnh vào tệp tin mới cv2.imwrite('images/hoa-hong-gray.jpg',img_gray) |
Kết quả
thay lời cảm ơn!
Các bài cũ hơn
- Sinh mã số kế tiếp dựa vào một mẫu cho trước bằng C# hoặc Java (10:47 AM - 22/12/2023)
- Lambda Expression và Functional Interface trong java 8 (09:11 AM - 21/12/2023)
- Các loại inheritance trong Java-Cách nhận biết extends và implements (10:37 AM - 15/12/2023)
- Chuyển đổi tiếng việt có dấu thành không dấu bằng Java áp dụng tạo URL thân thiện với các bộ máy tìm kiếm (SEO) (08:48 PM - 09/12/2023)
- Thêm Description Attribute cho từng Enum và chuyển đổi Enum thành một List Item trong .NET (05:33 PM - 08/12/2023)