Trong hình ảnh, một số kỹ thuật được sử dụng thường xuyên để trích xuất tính năng là tạo nhị phân và làm mờ
Binarizing: chuyển đổi mảng hình ảnh thành 1s và 0. Điều này được thực hiện trong khi chuyển đổi hình ảnh thành hình ảnh 2D. Ngay cả tỉ lệ xám cũng có thể được sử dụng. Nó cung cấp cho bạn một ma trận số của hình ảnh. Grayscale chiếm không gian ít hơn nhiều khi được lưu trữ trên Đĩa.
Đây là cách bạn làm điều đó trong Python:
from PIL import Image
%matplotlib inline
#Import an image
image = Image.open("xyz.jpg")
image
Hình ảnh ví dụ:
Bây giờ, chuyển đổi thành thang màu xám:
im = image.convert('L')
im
sẽ trả lại cho bạn hình ảnh này:
Và ma trận có thể được nhìn thấy bằng cách chạy này:
array(im)
Các mảng sẽ trông giống như thế này:
array([[213, 213, 213, ..., 176, 176, 176],
[213, 213, 213, ..., 176, 176, 176],
[213, 213, 213, ..., 175, 175, 175],
...,
[173, 173, 173, ..., 204, 204, 204],
[173, 173, 173, ..., 205, 205, 204],
[173, 173, 173, ..., 205, 205, 205]], dtype=uint8)
Bây giờ, sử dụng biểu đồ biểu đồ và / hoặc biểu đồ đường viền để xem các tính năng hình ảnh:
from pylab import *
# create a new figure
figure()
gray()
# show contours with origin upper left corner
contour(im, origin='image')
axis('equal')
axis('off')
figure()
hist(im_array.flatten(), 128)
show()
Điều này sẽ trả lại cho bạn một cốt truyện, trông giống như thế này:
Làm mờ: Thuật toán làm mờ lấy trung bình trọng số của các pixel lân cận để kết hợp màu môi trường xung quanh vào mỗi pixel. Nó tăng cường các đường viền tốt hơn và giúp hiểu các tính năng và tầm quan trọng của chúng tốt hơn.
Và đây là cách bạn làm điều đó trong Python:
from PIL import *
figure()
p = image.convert("L").filter(ImageFilter.GaussianBlur(radius = 2))
p.show()
Và hình ảnh mờ là:
Vì vậy, đây là một số cách mà bạn có thể làm kỹ thuật tính năng. Và đối với các phương pháp nâng cao, bạn phải hiểu những điều cơ bản về Thị giác máy tính và mạng lưới thần kinh, cũng như các loại bộ lọc khác nhau và tầm quan trọng của chúng và toán học đằng sau chúng.