Chắc hẳn các bạn thường hay biết đến OpenCV để xử trí hình ảnh và được sử dụng rất phổ biến. Trong nội dung bài viết hôm nay, mình sẽ share cho chúng ta các thực hiện OpenCV cho những người mới bắt đầu chưa có chút kinh nghiệm tay nghề nào tương quan để xử lý ảnh nhé.

Bạn đang xem: Open cv là gì

Giới thiệu OpenCV

OpenCV là dự án bước đầu tại thương hiệu Intel vào khoảng thời gian 1999 vày Gary Bradsky và trình làng lần thứ nhất vào năm 2000. Sau đó Vadim Pisarevsky dự vào và cai quản nhóm. Vào khoảng thời gian 2005, OpenCV được thực hiện trên xe từ lái Stanley và mẫu này sẽ vô địch giải đấu 2005 DARPA Grand. Tiếp theo nó liên tiếp được cách tân và cải tiến và phát triển dưới sự cung ứng của Willow Garage ở kề bên với Gary Bradsky và Vadim Pisarevsky. Bây giờ OpenCV cung ứng vô số những thuật toán tương quan để lĩnh vực thị giác máy tính (computer vision) và nghành học lắp thêm (machine learning).

OpenCV có thể sử dụng được ở phần đông các ngôn ngữ như C++, Python, Java … và các hệ điều hành không giống nhau như Windows, Linux, OS X, Android, iOS. Trong khi nó thể áp dụng card giao diện GPU để xử lý nhằm mục đích tốc độ xử lý.

Trong nội dung bài viết này mình đã sử dụng ngữ điệu Python để thực hiện các ví dụ vì ngôn ngữ này còn có cú pháp đối kháng giản, dễ hiểu và thông số kỹ thuật môi trường đối chọi giản

1. Thiết đặt môi trường

Trong bài viết này mình áp dụng python 3 với tủ sách opencv-python phiên bản 4.2.0.34.

Ở đây để đơn giản dễ dàng cho việc setup thì chúng ta sử dụng một thư viện có sẵn bên trên kho cai quản gói của python là opencv-python. Đây là 1 trong thư viện chưa phải của tổ chức triển khai OpenCV tuy nhiên nó có bản lĩnh y hệt và được update thường xuyên theo sự chuyển đổi của OpenCV. Hay nói cách khác đây là 1 đóng gói đến OpenCV trên kho tủ sách của python. Nếu bạn muốn sử dụng opencv phiên bản gốc thì lên trang sourceforge.net chọn phiên bạn dạng rồi cài xuống. Tiếp sau là giải nén và tải đặt bằng tay theo hướng dẫn. Do cách thiết lập này để mẫu đặt cho nhiều ngôn ngữ khác biệt nên phương pháp này không khuyến khích cho tất cả những người vừa bước đầu sử dụng opencv.

Sử dụng đoạn lênh sau để thiết đặt gói trường đoản cú kho thư viện pip

pip install opencv-pythonĐể kiểm tra cài đặt thành công hay là không ta tiến hành đoạn lênh sau để đánh giá phiên bạn dạng của opencv-python. Tùy từng thời điểm thì phiên bạn dạng của gói đã khác nhau. Những phiên bạn dạng mới là cập nhật cho opencv new hơn.

import cv2print(cv2.__version__)

2. Hiển thị hình ảnh

Đầu tiên ta sinh sản một đối tượng chứa thông tin ảnh được tải lên trường đoản cú file. Tiếp đến hiện thị hình hình ảnh lên cửa sổ giao diện.

img = cv2.imread("digital-neon.jpg")cv2.imshow("Display Image", img)cv2.waitKey(0)

*
Ở đây digital-neon.jpg là file hình hình ảnh để test, hàm waitKey(0) là hàm chờ quán triệt thoát hành lang cửa số lập tức nhưng mà phải người dùng nhấn phím ngẫu nhiên để thoát.

3. Lấy kích thước của ảnh

img = cv2.imread("digital-neon.jpg")(h, w, d) = img.shapeprint("width=, height=, depth=".format(w, h, d))Output: width=580, height=326, depth=3Ở đây thay đổi img là một đối tượng người tiêu dùng của Numpy array cất giá trị color của từng điểm hình ảnh trên các không gian màu không giống nhau. Lệnh img.shape để lấy ra size của mảng này với h, w, d thứu tự là chiều cao, chiều rộng, độ sâu của bước ảnh. Với hình ảnh có màu thì độ sau thường xuyên là 3, hình ảnh đen trắng là 1.

4. Lấy quý hiếm màu tại 1 điểm ảnh

Đoạn lệnh sau lấy ra giá trị màu sinh hoạt điểm ảnh tại vi trí 50, 50 với cội tọa độ là điểm trên cùng bên trái hình ảnh.

*

(B, G, R) = img<50, 50>print("R=, G=, B=".format(R, G, B))output: R=96, G=100, B=111Giá trị những thành phần màu có giá trị tự 0 đên 255.

5. Cắt ảnh

Đoạn lệnh sau cắt ảnh có tọa độ điểm trên cùng phía bên trái là (50, 60) và tọa độ điểm dưới thuộc bên bắt buộc là (350, 360).

roi = img<50:350, 60:360>cv2.imshow("Region Of Interest", roi)cv2.waitKey(0)

*

6. Biến đổi kích thước ảnh

Để thay đổi kích thước của ảnh trong opencv thì chúng ta sẽ cần sử dụng hàm resize. Hàm này cần khẳng định rõ chiều cao, chiều rộng ảnh sau khi trở nên đổi. Tuy nhiên hình ảnh sau khi thay đổi thường cùng phần trăm chiều cao, chiều rộng lớn với ảnh gốc. Đoạn lệnh sau biến đổi đối ảnh gốc gồm chiều rộng lớn 580 px sang ảnh có chiều rộng là 300 pixel.

img = cv2.imread("digital-neon.jpg")(h, w, d) = img.shaper = 300.0 / w dim = (300, int(h * r))resized = cv2.resize(img, dim)

*

7. Xoay ảnh

Để luân chuyển được ảnh đầu tiên ta cần xác minh gốc xoay với hướng xoay. Sau khoản thời gian xác định dứt tiếp theo ta tính ma trận xoay bởi hàm getRotationMatrix2D vào opencv. Cuối cùng ta nhân ma trận này cùng với ma trận hình ảnh gốc ta được ảnh sau lúc xoay.

Xem thêm: Giải Toán Lớp 5, Giải Bài Tập Sgk Toán Lớp 5 Hay Và Khó, Tuyển Tập Những Bài Toán Hay Lớp 5

Đoạn lệnh dưới đây xoay hình ảnh một góc 45 theo chiều ngược kim đồng hồ với nơi bắt đầu xoay là điểm ở chính giữa hình ảnh.

img = cv2.imread("digital-neon.jpg") (h, w, d) = img.shape center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, 45, 1.0) rotated = cv2.warpAffine(img, M, (w, h))

*

Tạm kết

Với vài chức năng cơ bạn dạng để xử lý ảnh ở bài viết này chúng ta cũng có thể làm được một ứng dụng dễ dàng và đơn giản để chỉnh sửa hình ảnh với OpenCV. Trong số phần tiếp theo, mình sẽ reviews thêm các tính năng xử lý ảnh mạnh hơn hoàn toàn như là xác định biên của các đối tượng người sử dụng trong ảnh, tính số đối tượng người sử dụng trong ảnh, sa thải nhiễu, xác đinh tín đồ trong hình ảnh …