Trong bài viết này, chúng ta sẽ tìm hiểu cách đảo ngược mặt nạ được tạo trên một hình ảnh trong OpenCV. Tạo mặt nạ là một kỹ thuật được sử dụng để làm nổi bật một đối tượng cụ thể khỏi hình ảnh. Nó có thể được định nghĩa là đặt một số pixel nhất định của hình ảnh thành một số giá trị null, chẳng hạn như 0 [màu đen] để chỉ phần đó của hình ảnh của chúng tôi được tô sáng khi giá trị pixel không phải là 0.
Đảo ngược mặt nạ về cơ bản sẽ đảo ngược toàn bộ quá trình, nghĩa là các pixel trong phần được tô sáng trở thành 0 và tất cả các pixel khác vẫn khác không. Với mục đích này, chúng tôi thực hiện thao tác bit không trên từng pixel để chuyển đổi [đảo ngược] giá trị của nó
Ví dụ, nếu chúng ta xem xét một mặt nạ
[ 0 1 0 0 0 0 0 1 0 ]
Bây giờ để đảo ngược mặt nạ này, chúng ta thực hiện thao tác bitwise not trên từng giá trị, nghĩa là 0 chuyển thành 1 và ngược lại
[ 1 0 1 1 1 1 1 0 1 ]
Để đảo ngược mặt nạ trong OpenCV, chúng tôi sử dụng cv2. hàm bitwise_not[], thực hiện thao tác bitwise không hoạt động trên các pixel riêng lẻ
cú pháp. cv2. bitwise_not[masked_image]
Thông số.
- masked_image. Đó là hình ảnh được đảo ngược
- Giá trị trả về. Nó trả về hình ảnh mặt nạ đảo ngược
Hình ảnh đã sử dụng
Ảnh gốc
ví dụ 1. Trong chương trình này, chúng tôi bắt đầu với việc đọc hình ảnh. Sau đó, chúng tôi tạo một hạt nhân của ma trận đơn vị [5 X 5] của kiểu dữ liệu 'int'. Bây giờ, chúng tôi chuyển đổi hình ảnh sang định dạng HSV vì tất cả các thao tác chỉ có thể được thực hiện ở định dạng HSV. Sau đó, chúng tôi thực hiện các kỹ thuật Xói mòn, Biến đổi và Giãn nở trên hình ảnh để tạo mặt nạ. Bây giờ, để đảo mặt nạ, chúng ta sử dụng phương thức bitwise_not của thư viện cv2 để lật các giá trị pixel [0 ->1 và 1 ->0]. Cuối cùng, chúng tôi hiển thị hình ảnh mặt nạ đảo ngược này.
Python3
# Python program to explain
# mask inversion on a b/w image.
# importing cv2 and numpy library
import
cv2
import
numpy as np
[ 1 0 1 1 1 1 1 0 1 ]1
[ 1 0 1 1 1 1 1 0 1 ]2
[ 1 0 1 1 1 1 1 0 1 ]3
[ 1 0 1 1 1 1 1 0 1 ]4
[ 1 0 1 1 1 1 1 0 1 ]5
[ 1 0 1 1 1 1 1 0 1 ]6
[ 1 0 1 1 1 1 1 0 1 ]8
[ 1 0 1 1 1 1 1 0 1 ]9
[ 1 0 1 1 1 1 1 0 1 ]3
# Python program to explain
1# Python program to explain
2# Python program to explain
3# Python program to explain
2# Python program to explain
5
# Python program to explain
7
# Python program to explain
8
[ 1 0 1 1 1 1 1 0 1 ]3
# mask inversion on a b/w image.
0
# mask inversion on a b/w image.
2
# mask inversion on a b/w image.
3
# mask inversion on a b/w image.
4
[ 1 0 1 1 1 1 1 0 1 ]3
# mask inversion on a b/w image.
6# mask inversion on a b/w image.
7# Python program to explain
3# mask inversion on a b/w image.
9# Python program to explain
3
1
2
3_______1_______3 # mask inversion on a b/w image.
6
6# Python program to explain
3
8# Python program to explain
3
8
2
# importing cv2 and numpy library
3
# importing cv2 and numpy library
4
# importing cv2 and numpy library
5
[ 1 0 1 1 1 1 1 0 1 ]3
# importing cv2 and numpy library
7# importing cv2 and numpy library
5
[ 1 0 1 1 1 1 1 0 1 ]3
import
0[ 1 0 1 1 1 1 1 0 1 ]3
import
2[ 1 0 1 1 1 1 1 0 1 ]6
# importing cv2 and numpy library
5
[ 1 0 1 1 1 1 1 0 1 ]3
import
6# importing cv2 and numpy library
5
[ 1 0 1 1 1 1 1 0 1 ]3
import
9[ 1 0 1 1 1 1 1 0 1 ]3
import
2[ 1 0 1 1 1 1 1 0 1 ]6
cv2
4
cv2
5
# importing cv2 and numpy library
5
[ 1 0 1 1 1 1 1 0 1 ]3
cv2
8
import
0
import
1import
2import
3
import
5
import
6
import
7
import
8import
9
[ 1 0 1 1 1 1 1 0 1 ]6
numpy as np
2
numpy as np
3
đầu ra
không đảo ngược mặt nạ
Mặt nạ đảo ngược
ví dụ 2. Chương trình này tương tự như chương trình đã giải thích ở trên. Sự khác biệt duy nhất là thay vì chuyển đổi hình ảnh thành b/w, chúng tôi trực tiếp tạo mặt nạ cho quả táo vàng và sau đó đảo ngược mặt nạ đã tạo bằng cách sử dụng thao tác bitwise_not.