Báo cáo Hệ cơ sở dữ liệu đa phương tiện

Quá trình xử lý ảnh

● Thu nhận ảnh:

Đặc điểm của kho ảnh:

- Có bao nhiêu ảnh? 100

- 15 loại hoa, chia vào 15 folder khác nhau.

- Mỗi ảnh chỉ có 1 bông hoa.

- Kích thước bao nhiêu?

- Tại sao lấy kích thước này?

- Mỗi loại hoa thì có nhiều hình dạng và màu sắc khác nhau, có

ảnh chụp gần và ảnh chụp xa, mỗi loại có nhiều màu sắc.

● Tiền xử lý

-resize ảnh (64x64) , đổi đuôi về jpg

Lọc trung bình - Median Filter

● Ý tưởng

- Với lọc trung bình, mỗi điểm ảnh (Pixel) được thay thế bằng trung

bình trọng số của các điểm trong vùng lân cận.- Giả sử rằng có 1 ma trận lọc (Kernel) (3x3) quét qua từng điểm ảnh

của ảnh đầu vào Isrc. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm

ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc

(Kernel). Giá trị điểm ảnh của ảnh đầu ra Idst là giá trị trung bình

của tất cả các điểm trong ảnh trong ma trận lọc (Kernel).

● Thuật toán

- 1 ảnh đầu vào với I(x,y) là giá trị điểm ảnh tại 1 điểm (x,y) và

1 ngưỡng θ.

● Bước 1: Tính tổng các thành phần trong ma trận lọc

(Kernel).

● Bước 2: Chia lấy trung bình của tổng các thành phần trong

ma trận được tính ở trên với số lượng các phần tử của cửa

sổ lọc ra 1 giá trị Itb(x, y).

● Bước 3: Hiệu chỉnh:

o Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).

o Nếu I(x,y) - Itb(x,y) <= θ thì I(x,y) = I(x,y).

● Chú ý

- θ là 1 giá trị cho trước và có thể có hoặc không tùy thuộc vào

mục đích.

● Tác dụng

- Trong lọc trung bình, thường ưu tiên cho các hướng để

bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu

ma trận lọc (Kernel) được sử dụng tùy theo các trường

hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo

nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp

các điểm lân cận chập với ma trận lọc (Kernel).

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 1

Trang 1

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 2

Trang 2

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 3

Trang 3

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 4

Trang 4

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 5

Trang 5

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 6

Trang 6

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 7

Trang 7

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 8

Trang 8

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 9

Trang 9

Báo cáo Hệ cơ sở dữ liệu đa phương tiện trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 51 trang baonam 15460
Bạn đang xem 10 trang mẫu của tài liệu "Báo cáo Hệ cơ sở dữ liệu đa phương tiện", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Báo cáo Hệ cơ sở dữ liệu đa phương tiện

Báo cáo Hệ cơ sở dữ liệu đa phương tiện
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
HỆ CƠ SỞ DỮ LIỆU ĐA PHƯƠNG TIỆN
THÀNH VIÊN NHÓM 08
HỌ VÀ TÊN : Nguyễn Như Tuấn MSV : B17DCCN659
HỌ VÀ TÊN : Nguyễn Thị Dung MSV : B17DCCN155
HỌ VÀ TÊN : Phạm Quốc Đạt MSV : B17DCCN118
GIẢNG VIÊN HƯỚNG DẪN: TS. Nguyễn Đình Hóa
Mục Lục
Câu 1: Đặc điểm của kho ảnh: 4
Câu 2: Kỹ thuật xử lý và phân loại ảnh hoa đang hiện hành 5
I. Kĩ thuật xử lý ảnh 5
1.Quá trình xử lý ảnh 5
Lọc trung bình - Median Filter 5
2.Đặc trưng của ảnh 6
3.Ảnh và biểu diễn ảnh: 6
II. Các phương pháp xử lý ảnh hiện nay 7
III. Kỹ thuật phân loại ảnh 8
1.Tìm hiểu về SVM 8
2.Tìm Hiểu về KNN 16
IV. Phương pháp rút trích đặc trưng hình ảnh HOG 18
Câu 3. Xây dựng hệ thống 23
V. Xây dựng hệ thống 23
1. Sơ đồ khối 23
2. Quá trình thực hiện 23
1. Bước 1: Tiền xử lý 23
2. Bước 2: Trích rút đặc trưng 24
3.Bước 3: Huấn luyện mô hình (Phân loại ảnh) 29
4. Bước 4: Nhận dạng ảnh 32
4.1 Kết quả train và test: 32
4.2 Kết quả tìm kiếm hình ảnh từ 1 hình ảnh: 32
4.3 Code 32
Yêu Cầu
1. Hãy sưu tầm ít nhất 100 bức ảnh về ít nhất 15 loại hoa khác nhau mỗi
ảnh chỉ gồm 1 bông hoa, các bức ảnh đều có cùng kích thước.
2. Tìm hiểu các kỹ thuật xử lý và phân loại ảnh hoa đang hiện hành
3. Xây dựng hệ thống nhận dạng ảnh hoa
- Đầu vào: 1 bông hoa thuộc loại hoa đã có và chưa có.
- Đầu ra: nhãn của hoa
a. Sơ đồ khối
Quy trình thực hiện
b. Trình bày thuộc tính được sử dụng để nhận dạng nhãn và
Kỹ thuật để trích rút các thuộc tính đó
c. Cách lưu trữ các thuộc tính ảnh hoa
Các nhận dạng ảnh hoa dựa trên các thuộc tính đó
4. Demo và đánh giá kq đạt dc
Câu 1: Đặc điểm của kho ảnh:
- Có khoảng 200 ảnh
- 15 loại hoa, chia vào 15 folder khác nhau.
- Mỗi ảnh chỉ có 1 bông hoa.
- Kích thước 64*64
- Mỗi loại hoa thì có nhiều hình dạng và màu sắc khác nhau, có ảnh chụp
gần và ảnh chụp xa, mỗi loại có nhiều màu sắc.
Câu 2: Kỹ thuật xử lý và phân loại ảnh hoa
đang hiện hành
I. Kĩ thuật xử lý ảnh
1. Quá trình xử lý ảnh
● Thu nhận ảnh:
Đặc điểm của kho ảnh:
- Có bao nhiêu ảnh? 100
- 15 loại hoa, chia vào 15 folder khác nhau.
- Mỗi ảnh chỉ có 1 bông hoa.
- Kích thước bao nhiêu?
- Tại sao lấy kích thước này?
- Mỗi loại hoa thì có nhiều hình dạng và màu sắc khác nhau, có
ảnh chụp gần và ảnh chụp xa, mỗi loại có nhiều màu sắc.
● Tiền xử lý
-resize ảnh (64x64) , đổi đuôi về jpg
❖ Lọc trung bình - Median Filter
● Ý tưởng
- Với lọc trung bình, mỗi điểm ảnh (Pixel) được thay thế bằng trung
bình trọng số của các điểm trong vùng lân cận.
- Giả sử rằng có 1 ma trận lọc (Kernel) (3x3) quét qua từng điểm ảnh
của ảnh đầu vào Isrc. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm
ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc
(Kernel). Giá trị điểm ảnh của ảnh đầu ra Idst là giá trị trung bình
của tất cả các điểm trong ảnh trong ma trận lọc (Kernel).
● Thuật toán
- 1 ảnh đầu vào với I(x,y) là giá trị điểm ảnh tại 1 điểm (x,y) và
1 ngưỡng θ.
● Bước 1: Tính tổng các thành phần trong ma trận lọc
(Kernel).
● Bước 2: Chia lấy trung bình của tổng các thành phần trong
ma trận được tính ở trên với số lượng các phần tử của cửa
sổ lọc ra 1 giá trị Itb(x, y).
● Bước 3: Hiệu chỉnh:
o Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).
o Nếu I(x,y) - Itb(x,y) <= θ thì I(x,y) = I(x,y).
● Chú ý
- θ là 1 giá trị cho trước và có thể có hoặc không tùy thuộc vào
mục đích.
● Tác dụng
- Trong lọc trung bình, thường ưu tiên cho các hướng để
bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu
ma trận lọc (Kernel) được sử dụng tùy theo các trường
hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo
nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp
các điểm lân cận chập với ma trận lọc (Kernel). 
2.Đặc trưng của ảnh
● Đặc trưng màu sắc
● Đặc trưng kết cấu
● Đặc trưng hình dạng
● Đặc trưng cục bộ bất biến
3.Ảnh và biểu diễn ảnh:
● Ảnh trong thực tế là một ảnh liên tục cả về không gian và giá trị
độ sáng. Để có thể xử lý ảnh bằng máy tính thì cần thiết phải tiến
hành số hóa ảnh
● Quá trình số hóa biến đổi các tín hiệu liên tục sang tín hiệu rời
rạc thông qua quá trình lấy mẫu (rời rạc hóa về không gian) và
lượng tử hóa các thành phần giá trị mà về nguyên tắc bằng mắt
thường không thể phân biệt được hai điểm liền kề nhau
● màn hình khụng liên tục mà gồm các điểm nhỏ, gọi là pixel. Mỗi
pixel gồm một tập tọa độ (x, y) và màu.
● Ảnh có thể được biểu diễn theo một trong hai mô hình: mô hình
Vector hoặc mô hình Raster
o Mô hình Vector: Ngoài mục đích tiết kiệm không gian lưu
trữ, dễ dàng hiển thị và in ấn, các ảnh biểu diễn theo mô
hình vector cũng có điểm dễ dàng lựa chọn, sao cho, di
chuyển, tìm kiếm
o Mô hình Raster: Ảnh được biểu diễn dưới dạng ma trận
các điểm ảnh
▪ mỗi điểm ảnh có thể được biểu diễn bởi một hay
nhiều bit
▪ Mô hình Raster thuận lợi cho việc thu nhận, hiển
thị và in ấn
II. Các phương pháp xử lý ảnh hiện nay
● Nhiễu xạ không đẳng hướng: thường được gọi là khuếch tán
Perona-Malik. Phương pháp nà ... hông
gian dữ liệu lớp dương thỏa mãn
Tiếp theo ta chọn hai siêu phẳng lề đi qua điểm thuộc
lớp âm và đi qua điểm thuộc lớp dương đều song song
với
• : + b =-1
• : + b =1
Khoảng cách từ đến là
Khoảng cách từ đến là
m = + được gọi là mức lề
Siêu phẳng tối ưu mà chúng ta cần chọn là siêu phẳng
phân tách có lề lớn nhất. Lý thuyết học máy đã chỉ ra
rằng một siêu phẳng như vậy sẽ cực tiểu hóa giới hạn lỗi
mắc phải.
4. Bước 4: Nhận dạng ảnh
4.1 Kết quả train và test:
4.2 Kết quả tìm kiếm hình ảnh từ 1 hình ảnh:
4.3 Code
Code.py
import glob
from cv2 import cv2
import numpy as np
def create_images_array(load_img_paths):
imgs = []
# dn
win_size = (64, 64)
block_size = (16, 16)
block_stride = (4, 4)
cell_size = (4, 4)
bins = 9
# load anh
for load_img_path in load_img_paths:
img = cv2.imread(load_img_path)
# loc trung binh
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
figure_size = 9
img = cv2.blur(img,(figure_size, figure_size))
# hog
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.resize(gray, win_size)
hog = cv2.HOGDescriptor(win_size, block_size,
block_stride, cell_size, bins)
img = hog.compute(gray)
imgs.append(img)
return np.array(imgs, np.float32)
def main():
# path anh train
LOAD_TRAIN_IMG0S_PATH = 'train/0/*'
LOAD_TRAIN_IMG1S_PATH = 'train/1/*'
LOAD_TRAIN_IMG2S_PATH = 'train/2/*'
LOAD_TRAIN_IMG3S_PATH = 'train/3/*'
LOAD_TRAIN_IMG4S_PATH = 'train/4/*'
LOAD_TRAIN_IMG5S_PATH = 'train/5/*'
LOAD_TRAIN_IMG6S_PATH = 'train/6/*'
LOAD_TRAIN_IMG7S_PATH = 'train/7/*'
LOAD_TRAIN_IMG8S_PATH = 'train/8/*'
LOAD_TRAIN_IMG9S_PATH = 'train/9/*'
LOAD_TRAIN_IMG10S_PATH = 'train/10/*'
LOAD_TRAIN_IMG11S_PATH = 'train/11/*'
LOAD_TRAIN_IMG12S_PATH = 'train/12/*'
LOAD_TRAIN_IMG13S_PATH = 'train/13/*'
LOAD_TRAIN_IMG14S_PATH = 'train/14/*'
# path luu du lieu
SAVE_TRAINED_DATA_PATH = 'data/svm_trained_data.xml'
# path anh test
LOAD_TEST_IMG0S_PATH = 'test/0/*'
LOAD_TEST_IMG1S_PATH = 'test/1/*'
LOAD_TEST_IMG2S_PATH = 'test/2/*'
LOAD_TEST_IMG3S_PATH = 'test/3/*'
LOAD_TEST_IMG4S_PATH = 'test/4/*'
LOAD_TEST_IMG5S_PATH = 'test/5/*'
LOAD_TEST_IMG6S_PATH = 'test/6/*'
LOAD_TEST_IMG7S_PATH = 'test/7/*'
LOAD_TEST_IMG8S_PATH = 'test/8/*'
LOAD_TEST_IMG9S_PATH = 'test/9/*'
LOAD_TEST_IMG10S_PATH = 'test/10/*'
LOAD_TEST_IMG11S_PATH = 'test/11/*'
LOAD_TEST_IMG12S_PATH = 'test/12/*'
LOAD_TEST_IMG13S_PATH = 'test/13/*'
LOAD_TEST_IMG14S_PATH = 'test/14/*'
# lay anh train
load_img0_paths = glob.glob(LOAD_TRAIN_IMG0S_PATH)
load_img1_paths = glob.glob(LOAD_TRAIN_IMG1S_PATH)
load_img2_paths = glob.glob(LOAD_TRAIN_IMG2S_PATH)
load_img3_paths = glob.glob(LOAD_TRAIN_IMG3S_PATH)
load_img4_paths = glob.glob(LOAD_TRAIN_IMG4S_PATH)
load_img5_paths = glob.glob(LOAD_TRAIN_IMG5S_PATH)
load_img6_paths = glob.glob(LOAD_TRAIN_IMG6S_PATH)
load_img7_paths = glob.glob(LOAD_TRAIN_IMG7S_PATH)
load_img8_paths = glob.glob(LOAD_TRAIN_IMG8S_PATH)
load_img9_paths = glob.glob(LOAD_TRAIN_IMG9S_PATH)
load_img10_paths = glob.glob(LOAD_TRAIN_IMG10S_PATH)
load_img11_paths = glob.glob(LOAD_TRAIN_IMG11S_PATH)
load_img12_paths = glob.glob(LOAD_TRAIN_IMG12S_PATH)
load_img13_paths = glob.glob(LOAD_TRAIN_IMG13S_PATH)
load_img14_paths = glob.glob(LOAD_TRAIN_IMG14S_PATH)
# load anh train
imgs0 = create_images_array(load_img0_paths)
imgs1 = create_images_array(load_img1_paths)
imgs2 = create_images_array(load_img2_paths)
imgs3 = create_images_array(load_img3_paths)
imgs4 = create_images_array(load_img4_paths)
imgs5 = create_images_array(load_img5_paths)
imgs6 = create_images_array(load_img6_paths)
imgs7 = create_images_array(load_img7_paths)
imgs8 = create_images_array(load_img8_paths)
imgs9 = create_images_array(load_img9_paths)
imgs10 = create_images_array(load_img10_paths)
imgs11 = create_images_array(load_img11_paths)
imgs12 = create_images_array(load_img12_paths)
imgs13 = create_images_array(load_img13_paths)
imgs14 = create_images_array(load_img14_paths)
imgs = np.r_[imgs0, imgs1,
imgs2,imgs3,imgs4,imgs5,imgs6,imgs7,imgs8,imgs9,imgs10,imgs11,
imgs12,imgs13,imgs14]
# tao label
labels0 = np.full(len(load_img0_paths), 0, np.int32)
labels1 = np.full(len(load_img1_paths), 1, np.int32)
labels2 = np.full(len(load_img2_paths), 2, np.int32)
labels3 = np.full(len(load_img3_paths), 3, np.int32)
labels4 = np.full(len(load_img4_paths), 4, np.int32)
labels5 = np.full(len(load_img5_paths), 5, np.int32)
labels6 = np.full(len(load_img6_paths), 6, np.int32)
labels7 = np.full(len(load_img7_paths), 7, np.int32)
labels8 = np.full(len(load_img8_paths), 8, np.int32)
labels9 = np.full(len(load_img9_paths), 9, np.int32)
labels10 = np.full(len(load_img10_paths), 10, np.int32)
labels11 = np.full(len(load_img11_paths), 11, np.int32)
labels12 = np.full(len(load_img12_paths), 12, np.int32)
labels13 = np.full(len(load_img13_paths), 13, np.int32)
labels14 = np.full(len(load_img14_paths), 14, np.int32)
labels = np.array([np.r_[labels0, labels1,
labels2,labels3,labels4,labels5,labels6,labels7,labels8,labels
9,labels10,labels11,labels12,labels13,labels14,]])
# train du lieu
svm = cv2.ml.SVM_create()
svm.setType(cv2.ml.SVM_C_SVC)
svm.setKernel(cv2.ml.SVM_LINEAR)
svm.setGamma(1)
svm.setC(1)
svm.setTermCriteria((cv2.TERM_CRITERIA_COUNT, 100,
1.e-06))
svm.train(imgs, cv2.ml.ROW_SAMPLE, labels)
# luu du lieu
svm.save(SAVE_TRAINED_DATA_PATH)
# lay anh test
test_img0_paths = glob.glob(LOAD_TEST_IMG0S_PATH)
test_img1_paths = glob.glob(LOAD_TEST_IMG1S_PATH)
test_img2_paths = glob.glob(LOAD_TEST_IMG2S_PATH)
test_img3_paths = glob.glob(LOAD_TEST_IMG3S_PATH)
test_img4_paths = glob.glob(LOAD_TEST_IMG4S_PATH)
test_img5_paths = glob.glob(LOAD_TEST_IMG5S_PATH)
test_img6_paths = glob.glob(LOAD_TEST_IMG6S_PATH)
test_img7_paths = glob.glob(LOAD_TEST_IMG7S_PATH)
test_img8_paths = glob.glob(LOAD_TEST_IMG8S_PATH)
test_img9_paths = glob.glob(LOAD_TEST_IMG9S_PATH)
test_img10_paths = glob.glob(LOAD_TEST_IMG10S_PATH)
test_img11_paths = glob.glob(LOAD_TEST_IMG11S_PATH)
test_img12_paths = glob.glob(LOAD_TEST_IMG12S_PATH)
test_img13_paths = glob.glob(LOAD_TEST_IMG13S_PATH)
test_img14_paths = glob.glob(LOAD_TEST_IMG14S_PATH)
test_imgs0 = create_images_array(test_img0_paths)
test_imgs1 = create_images_array(test_img1_paths)
test_imgs2 = create_images_array(test_img2_paths)
test_imgs3 = create_images_array(test_img3_paths)
test_imgs4 = create_images_array(test_img4_paths)
test_imgs5 = create_images_array(test_img5_paths)
test_imgs6 = create_images_array(test_img6_paths)
test_imgs7 = create_images_array(test_img7_paths)
test_imgs8 = create_images_array(test_img8_paths)
test_imgs9 = create_images_array(test_img9_paths)
test_imgs10 = create_images_array(test_img10_paths)
test_imgs11 = create_images_array(test_img11_paths)
test_imgs12 = create_images_array(test_img12_paths)
test_imgs13 = create_images_array(test_img13_paths)
test_imgs14 = create_images_array(test_img14_paths)
test_imgs = np.r_[test_imgs0, test_imgs1, test_imgs2,
test_imgs3,test_imgs4,test_imgs5,test_imgs6,test_imgs7,test_im
gs8,test_imgs9,test_imgs10,test_imgs11,test_imgs12,test_imgs13
,test_imgs14]
# chay test
test_labels0 = np.full(len(test_img0_paths), 0, np.int32)
test_labels1 = np.full(len(test_img1_paths), 1, np.int32)
test_labels2 = np.full(len(test_img2_paths), 2, np.int32)
test_labels3 = np.full(len(test_img3_paths), 3, np.int32)
test_labels4 = np.full(len(test_img4_paths), 4, np.int32)
test_labels5 = np.full(len(test_img5_paths), 5, np.int32)
test_labels6 = np.full(len(test_img6_paths), 6, np.int32)
test_labels7 = np.full(len(test_img7_paths), 7, np.int32)
test_labels8 = np.full(len(test_img8_paths), 8, np.int32)
test_labels9 = np.full(len(test_img9_paths), 9, np.int32)
test_labels10 = np.full(len(test_img10_paths), 10,
np.int32)
test_labels11 = np.full(len(test_img11_paths), 11,
np.int32)
test_labels12 = np.full(len(test_img12_paths), 12,
np.int32)
test_labels13 = np.full(len(test_img13_paths), 13,
np.int32)
test_labels14 = np.full(len(test_img14_paths), 14,
np.int32)
test_labels = np.array([np.r_[test_labels0, test_labels1,
test_labels2,test_labels3,test_labels4,test_labels5,test_label
s6,test_labels7,test_labels8,test_labels9,test_labels10,test_l
abels11,test_labels12,test_labels13,test_labels14]])
svm = cv2.ml.SVM_load(SAVE_TRAINED_DATA_PATH)
predicted = svm.predict(test_imgs)
# in man hinh
print("test labels:", test_labels)
print("predicted:", predicted[1].T)
score = np.sum(test_labels ==
predicted[1].T)/len(test_labels[0])
print("Score:", score)
if __name__ == '__main__':
main()
timkiem.py
import glob
from cv2 import cv2
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image, ImageFilter
path0 = glob.glob("train/0/*.jpg")
path1 = glob.glob("train/1/*.jpg")
path2 = glob.glob("train/2/*.jpg")
path3 = glob.glob("train/3/*.jpg")
path4 = glob.glob("train/4/*.jpg")
path5 = glob.glob("train/5/*.jpg")
path6 = glob.glob("train/6/*.jpg")
path7 = glob.glob("train/7/*.jpg")
path8 = glob.glob("train/8/*.jpg")
path9 = glob.glob("train/9/*.jpg")
path10 = glob.glob("train/10/*.jpg")
path11 = glob.glob("train/11/*.jpg")
path12 = glob.glob("train/12/*.jpg")
path13 = glob.glob("train/13/*.jpg")
path14 = glob.glob("train/14/*.jpg")
cv_img = []
SAVE_TRAINED_DATA_PATH = 'data/svm_trained_data.xml'
imgs = []
img = cv2.imread('1.jpg')
win_size = (64, 64)
block_size = (16, 16)
block_stride = (4, 4)
cell_size = (4, 4)
bins = 9
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
figure_size = 9
img = cv2.blur(img,(figure_size, figure_size))
# hog
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.resize(gray, win_size)
hog = cv2.HOGDescriptor(win_size, block_size, block_stride,
cell_size, bins)
img = hog.compute(gray)
imgs.append(img)
imgs = np.array(imgs,np.float32)
svm = cv2.ml.SVM_load(SAVE_TRAINED_DATA_PATH)
predicted = svm.predict(imgs)
print(predicted[1].T)
kq = predicted[1].T
if kq == 0:
for img in path0:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 1:
for img in path1:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 2:
for img in path3:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 3:
for img in path3:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 4:
for img in path4:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 5:
for img in path5:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 6:
for img in path6:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 7:
for img in path7:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 8:
for img in path8:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 9:
for img in path9:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 10:
for img in path10:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 11:
for img in path11:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 12:
for img in path12:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 13:
for img in path13:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
elif kq == 14:
for img in path14:
n = cv2.imread(img)
cv_img.append(n)
plt.figure(figsize=(15,6))
plt.subplot(131)
plt.imshow(cv_img[0])
plt.xticks([]), plt.yticks([])
plt.subplot(132)
plt.imshow(cv_img[1])
plt.xticks([]), plt.yticks([])
plt.subplot(133)
plt.imshow(cv_img[2])
plt.xticks([]), plt.yticks([])
plt.show()
else:
print("k tim dc anh")
print(type(kq))
print(kq)

File đính kèm:

  • pdfbao_cao_he_co_so_du_lieu_da_phuong_tien.pdf