ในภาพเทคนิคที่ใช้บ่อยสำหรับการดึงคุณสมบัติคือการแปลงและการทำให้มัว
Binarizing:แปลงอาร์เรย์ภาพเป็น 1s และ 0s สิ่งนี้จะทำในขณะแปลงภาพเป็นภาพ 2D แม้แต่การปรับสเกลสีเทาก็สามารถใช้ได้เช่นกัน มันให้เมทริกซ์เชิงตัวเลขของภาพ สีเทาใช้พื้นที่น้อยกว่ามากเมื่อเก็บไว้ในแผ่นดิสก์
นี่คือวิธีที่คุณทำใน Python:
from PIL import Image
%matplotlib inline
#Import an image
image = Image.open("xyz.jpg")
image
ภาพตัวอย่าง:
ตอนนี้เปลี่ยนเป็นระดับสีเทา:
im = image.convert('L')
im
จะคืนรูปภาพนี้ให้คุณ:
และเมทริกซ์สามารถมองเห็นได้ด้วยการทำสิ่งนี้:
array(im)
อาร์เรย์จะมีลักษณะดังนี้:
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)
ตอนนี้ใช้พล็อตฮิสโตแกรมและ / หรือพล็อตรูปร่างเพื่อดูคุณสมบัติภาพ:
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()
นี่จะคืนค่าพล็อตให้คุณซึ่งมีลักษณะดังนี้:
การเบลอ:อัลกอริทึมการเบลอภาพใช้น้ำหนักเฉลี่ยของพิกเซลข้างเคียงเพื่อรวมสีของสภาพแวดล้อมลงในทุกพิกเซล ช่วยเพิ่มรูปทรงที่ดีขึ้นและช่วยในการทำความเข้าใจคุณสมบัติและความสำคัญของพวกเขาดีขึ้น
และนี่คือวิธีที่คุณทำใน Python:
from PIL import *
figure()
p = image.convert("L").filter(ImageFilter.GaussianBlur(radius = 2))
p.show()
และภาพเบลอคือ:
ดังนั้นนี่คือวิธีการบางอย่างที่คุณสามารถทำวิศวกรรมคุณลักษณะ และสำหรับวิธีการขั้นสูงคุณต้องเข้าใจพื้นฐานของ Computer Vision และ Neural Networks รวมถึงตัวกรองประเภทต่าง ๆ ความสำคัญของพวกเขาและคณิตศาสตร์ที่อยู่เบื้องหลัง