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.