Lập trình OpenCV C++ Bài 5 : Kỹ thuật mirror ảnh, flip ảnh

Hi, chào mừng các bạn đến với chủ đề học lập trình C++ Opencv

Hôm nay chúng ta sẽ cùng đi tiếp một bài học mới:

Kỹ thuật mirror ảnh, flip ảnh trong open cv

Mirror ảnh hiểu đơn giản là đảo ngược hình ảnh theo kiểu soi gương, một các gọi khác là Flip

Các bạn thường thấy rất nhiều trong các xử lý ảnh thông thường.

Khi một tấm ảnh các bạn muốn đổi chiểu theo kiểu gương soi thì đây là kỹ thuật có thể áp dụng.

Và mirror có hai kiểu đó là mirror theo phương ngang, và mirrror theo phương dọc.

Bài viết này tôi sẽ hướng dẫn các bạn mirror theo phương ngang,

sau đó các bạn có thể áp dụng làm thêm cho phương dọc như một bài tập về nhà

 

Step 1: Tạo icon toolbar cho chức năng

Cũng giống như bài trước các bạn hãy tạo một icon cho kỹ thuật mirror ảnh.

Chúng ta sẽ tạo 1 icon như sau:

 

Step 2:  Viết hàm nhận sự kiện tại lớp MainFrame

Giống như bài trước

 

Step 3: Viết hàm xử lý yêu cầu tại lớp document: MirrorHorizontal()

Xử lý cho việc mirror rất đơn giản, bạn chỉ cần gọi hàm cv::flip là xong.

Các tham số của hàm flip thể hiện ý nghĩa như sau:

Đối số 1:  src   // dữ liệu ảnh gốc
Đối số 2:  dst   // dữ liệu ảnh kết quả cùng size với src

Đối số 3: cờ flip code để chỉ định kiểu flip

flipCode bằng 0 thì sẽ thực hiện flip xung quanh trục x (trục x nằm ngang, nên sẽ hiểu là mirror dọc)

flipCode bằng  giá trị dương ví dụ như 1 thì sẽ flip ảnh quanh trục y (trục y nằm dọc sẽ hiểu là mirror ngang)

flipCode bằng  giá trị âm (ví dụ -1) thì sẽ flip theo cả hai chiều

Build chương trình và chạy chức năng sẽ được kết quả như sau:

Ok, đó là cơ bản về kỹ thuật mirror ảnh hay còn được gọi là flip ảnh.

Các bạn hãy thực hành với chế độ flip vertical.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.