XỬ LÝ ẢNH BẰNG C++

Chắc hẳn các bạn thường tốt nghe đến OpenCV để xử lý hình ảnh và được áp dụng siêu thông dụng. Trong nội dung bài viết bây giờ, bản thân đang share mang lại chúng ta các áp dụng OpenCV cho tất cả những người mới bắt đầu chưa tồn tại chút kinh nghiệm như thế nào tương quan để xử trí hình họa nhé.

Bạn đang xem: Xử lý ảnh bằng c++

Giới thiệu OpenCV

OpenCV là dự án ban đầu trên hãng Hãng sản xuất Intel vào thời điểm năm 1999 vị Gary Bradsky với reviews lần đầu tiên vào khoảng thời gian 2000. Sau đó Vadyên Pisarevsky gia nhập và cai quản nhóm. Vào năm 2005, OpenCV được sử dụng trên xe cộ trường đoản cú lái Stanley với chiếc này đang vô địch giải đấu 2005 DARPA Grand. Tiếp theo nó liên tiếp được cải tiến với phát triển đằng sau sự hỗ trợ của Willow Garage ở bên cạnh cùng với Gary Bradsky cùng Vadim Pisarevsky. Hiện tại OpenCV cung cấp vô vàn các thuật toán tương quan để lĩnh vực mắt máy tính xách tay (computer vision) và lĩnh vực học sản phẩm (machine learning).

OpenCV hoàn toàn có thể sử dụng được sống hầu như những ngôn từ nhỏng C++, Pybé nhỏ, Java … với các hệ điều hành quản lý khác biệt nlỗi Windows, Linux, OS X, Android, iOS. Ngoài ra nó thể sử dụng thẻ hình ảnh GPU để xử lý nhằm mục tiêu vận tốc cách xử trí.

Trong bài viết này mình vẫn sử dụng ngôn từ Python nhằm thực hiện những ví dụ vày ngữ điệu này còn có cú pháp dễ dàng và đơn giản, dễ hiểu với thông số kỹ thuật môi trường xung quanh solo giản

1. Cài đặt môi trường

Trong nội dung bài viết này mình thực hiện pybé nhỏ 3 cùng với thỏng viện opencv-python thả phiên bản 4.2.0.34.

Tại phía trên nhằm đơn giản mang lại Việc setup thì họ thực hiện một thư viện gồm sẵn bên trên kho làm chủ gói của pynhỏ bé là opencv-python. Đây là 1 trong những tlỗi viện chưa hẳn của tổ chức triển khai OpenCV tuy nhiên nó tất cả thiên tài đồng nhất với được cập nhật thường xuyên theo sự chuyển đổi của OpenCV. Hay nói theo cách khác đây là một gói gọn mang đến OpenCV trên kho tlỗi viện của pykhiêm tốn. Nếu bạn muốn thực hiện opencv phiên phiên bản cội thì lên trang sourceforge.net lựa chọn phiên bản rồi download xuống. Tiếp theo là giải nén cùng thiết đặt thủ công theo hướng dẫn. Vì phương pháp thiết lập này nhằm dòng đặt đến nhiều ngôn từ khác nhau nên biện pháp này không khuyến nghị cho những người vừa ban đầu thực hiện opencv.

Sử dụng đoạn lênh sau nhằm thiết đặt gói từ bỏ kho tlỗi viện pip

pip install opencv-pythonĐể chất vấn setup thành công xuất sắc hay không ta tiến hành đoạn lênh sau để kiểm soát phiên phiên bản của opencv-pythanh mảnh. Tùy từng thời gian thì phiên bạn dạng của gói đã không giống nhau. Các phiên bạn dạng mới là update cho opencv new hơn.

import cv2print(cv2.__version__)

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

trước hết ta tạo ra một đối tượng người sử dụng chứa báo cáo hình họa được tải lên từ bỏ file. Sau đó hiện thị hình ảnh lên hành lang cửa số giao diện.

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

*
Tại đây digital-neon.jpg là file hình hình họa để demo, hàm waitKey(0) là hàm hóng không cho bay cửa sổ lập tức cơ mà buộc phải người tiêu dùng nhận phím bất kỳ để thoát.

Xem thêm: Hình Ảnh Người Phụ Nữ Việt Nam Thời Xưa, Qua Các Bài Bánh Trôi Nước, Tự Tình (Bài Ii)

3. Lấy form size 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=3Tại phía trên đổi thay img là 1 trong những đối tượng người dùng của Numpy array chứa cực hiếm màu của từng điểm hình họa trên những không khí màu khác nhau. Lệnh img.shape để lấy ra form size của mảng này với h, w, d lần lượt là chiều cao, chiều rộng lớn, độ sâu của bước ảnh. Với hình ảnh tất cả màu sắc thì độ sau thường xuyên là 3, ảnh black white là 1 trong.

4. Lấy quý giá màu sắc tại 1 điểm ảnh

Đoạn lệnh sau kéo ra quý hiếm color sống điểm hình ảnh tại vi trí 50, 50 cùng với cội tọa độ là vấn đề bên trên cùng phía bên trái hình 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ị các nhân tố màu sắc có mức giá trị từ 0 đên 255.

5. Cắt ảnh

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

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

*

6. Ttuyệt thay đổi kích cỡ ảnh

Để biến đổi kích thước của hình ảnh vào opencv thì họ vẫn dùng hàm resize. Hàm này phải xác định rõ chiều cao, chiều rộng hình ảnh sau thời điểm đổi khác. Tuy nhiên ảnh sau thời điểm đổi khác thường cùng Phần Trăm độ cao, chiều rộng với ảnh gốc. Đoạn lệnh sau biến chuyển đối hình ảnh nơi bắt đầu bao gồm chiều rộng lớn 580 pixel sang trọng ảnh gồm chiều rộng lớn là 300 pixel.

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

*

7. Xoay ảnh

Để chuyển phiên được ảnh đầu tiên ta bắt buộc xác định gốc chuyển phiên cùng hướng chuyển phiên. Sau Khi xác minh kết thúc tiếp theo sau ta tính ma trận xoay bằng hàm getRotationMatrix2 chiều trong 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 thời điểm luân chuyển.

Đoạn lệnh sau đây chuyển phiên hình ảnh một góc 45 theo hướng ngược klặng đồng hồ đeo tay với nơi bắt đầu luân chuyển là vấn đề ở chính giữa hình hình họa.

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 ba tính năng cơ phiên bản nhằm cách xử trí hình ảnh ngơi nghỉ nội dung bài viết này bạn cũng có thể làm cho được một ứng dụng dễ dàng và đơn giản để sửa đổi ảnh cùng với OpenCV. Trong những phần tiếp sau, bản thân sẽ trình làng thêm các tác dụng xử lý hình họa mạnh khỏe hơn hoàn toàn như xác minh biên của những đối tượng người tiêu dùng vào ảnh, tính số đối tượng người sử dụng vào hình họa, vứt bỏ nhiễu, xác đinh người vào hình họa …