1
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
OPEN
CV
1. Giới thiệu về
OpenCV
2. Cách cài
đặt
a. Cài đặt trên VS
2008
b. Cài đặt trên VS
2010
3. Các hàm xử lí
ả
nh
a. Hiển thị
ảnh
b.
Lưu hình
ả
nh
c. Biến đổi
ả
nh
d. Lọc
ảnh
e. Tìm
biê
n
4. Các hàm xử lí
V
ideo
a. Đọc
V
i
deo
từ
f
ile
b. Lấy ảnh từ
Cam
era
c. Lưu
V
id
eo
2
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Giới
thiệu
về
Open
CV
OpenCV
là
gì?
OpenCV là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát
triển
về thị
g
i
ác
máy
tính.
Tối ưu hóa và xử lí các ứng dụng trong thời gian t
hự
c.
Giúp cho việc xây dựng các ứng dụng xử lí ảnh, thị giác máy tính, một cách
nhanh
hơn
.
OpenCV có hơn 500 hàm khác nhau,
được
ch
i
a
l
àm
nhiều phần phục vụ các
công
việc như: xử lí hình ảnh y tế, an ninh,
camera
quan sát, nhận diện,
robots,
Ai
sẽ sử dụng
Ope
nCV?
Đầu tiên chúng ta phải
h
i
ểu
: OpenCV là mã nguồn mở và chúng ta không
p
hả
i
tr
ả
bất cứ một đồng nào cho
nó.
Tất cả chúng ta đều có thể
sử
dụng OpenCV tùy theo việc chúng ta
sử
dụng nó
như
thế nào vào việc
g
ì
.
Sử dụng OpenCV
để làm
gì?
Xử lí ảnh, quan
sát,
an ninh,
robots,
Tất cả
những
gì mà bạn nghĩ rằng
li
ên
quan
đến thị
g
i
ác
máy tính thì bạn có thể
sử
dụng OpenCV để
làm.
Thay vì lập trình cho các thuật toán xử lí ảnh thì bạn đã có
sẵn
trong tay một thư
việ
n
về các hàm đó. Công việc của bạn chỉ là
sử
dụng nó. Và bạn có thể lập trình cho
c
ác
thiết
b
ị
máy móc để cho nó có thể
“n
hìn”,
3
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Download
và
cài đặt
O
penCV
Download
tại:
h
ttp://s
ou
rc
e
f
or
ge.net
/
pro
jec
ts/opencvlibrary/
Tài liệu
hướng
dẫn: Các bạn nên
sử
dụng cuốn Learning OpenCV (Dr. Gary
Rost
Bradski &
Dr. Adrian
K
aehler)
Ghi chú: Các bạn có lấy file đính kèm của tài liệu
nà
y
Cài
đặ
t:
Ghi chú: Các bạn
phả
i
download
thêm phần mềm CMAKE tại địa chỉ:
htt
p
://
cmake
.org
Cài đặt
chung:
B1: Cài đặt
phần mềm OpenCV
(Các
bạn có
thể
sử dụng phiên bản
2.1
hoặc
2.2)
.
B2: Cài đặt
cmake
và làm
theo hướng dẫn
B2.1: Tạo một
thư mục
có
tên:
Build
trong thư mục
cài đặt
OpenCV.
(VD: Tạo
thư mục
B
uild
trong thư mục
C:/
Op
e
nCV2.2)
B2.2:
Khởi động Cmake
và
điền các thông số như hình bên
4
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Tiếp
tục nháy
vào nút
C
on
f
igure
Chọn phiên bản
Vi
s
ual
Studio đang dùng
rồi click vào
F
inish
Tiếp
tục nháy
vào nút
C
on
f
igure
Click vào
Generate
rồi
thoát
Cm
ake.
B2.3: Mở
thư mục OpenCV2.2\Build (hoặc OpenCV2.1 nếu bạn cài
Ope
nCV2.1)
Mở
file OpenCV.sln
(C:\
Op
e
nCV2.2\B
uild\Ope
nCV
.s
ln
)
B2.3: Tại
giao diện của
V
isual
Studio chọn Release
rồi Build
Solution (Nhấn
F6
hoặc
F
7)
5
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Chờ đến
khi
build xong
thì
bạn thoát ra
rồi tạo một
Project
m
ới.
Cài đặt
Ope
nC
V
trên Visual Studio
2008
Bạn
thao
tác
như sau: Tools
O
ptions
Chọn
VC++
Directories
Include files
Thêm các thư mục sau vào.
Với
bản OpenCV2.2 các bạn thêm các thư mục sau:
(Tùy
theo bạn sử dụng
mà
bạn
t
hêm)
C:\O
penCV2.2
\inclu
de
C:\O
penCV2.2
\inclu
de\
op
e
ncv
C:\O
penCV2.2
\inclu
de\
op
e
ncv2
\i
m
gproc
C:\O
penCV2.2
\inclu
de\
op
e
ncv2\featur
es
2d
c:\O
penCV2.2
\inclu
de\
op
e
ncv2
\obj
detec
t
6
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Với
bản OpenCV2.1 bạn thêm các thư mục
sa
u:
C:\O
penCV2.1\Bu
ild\bin\Rele
as
e
C:\O
penCV2.1\Bu
ild\bin
C:\O
penCV2.1
\inclu
de
C:\O
penCV2.1
\inclu
de\
op
e
ncv
Tiếp
tục các bạn chọn
VC++
Directories
Library files
Thêm các thư mục chứa các t
hư
viện
và
o
.
Với
bản OpenCV2.2 bạn chỉ cần thêm:
C
:
\Ope
nCV2
.2\lib
Với
bản OpenCV2.1 bạn thêm các thư mục
sa
u:
C:\O
penCV2.1\Build\lib
\Rele
as
e
C:\O
penCV2.1\Build\lib
C:\O
penCV2.1
\li
b
Tiếp
đến các bạn
c
họn:
7
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Chọn Configuration Propertise
Linker
Inpu
t
Tại Addtional Dependencies Các bạn thêm các
file
sa
u:
C:\O
penCV2.2
\li
b\o
pencv
_core2
20
.l
i
b
C:\O
penCV2.2
\li
b\o
pencv
_hi
g
hgui22
0.l
ib
C:\O
penCV2.2
\li
b\o
pencv
_m
l220.lib
C:\O
penCV2.2
\li
b\o
pencv
_img
proc2
20.lib
C:\O
penCV2.2
\li
b\o
pencv
_legacy
22
0.l
ib
Sau
khi
thêm xong là các bạn
đã
hoàn thành việc cấu hình OpenCV trên
V
isual
Studio
2008
.
Cài đặt
Ope
nC
V
trên Visual Sutdio
2010
Bạn
thao
tác
như sau:
Click
chuột phải
vào tên
Project
Pro
pertis
e
Thao
tác
thêm các thư
viện
như
2008.
Sau
khi
thêm các thư
viện
tại
:
Include
files và
Library
files
xong chọn Configuration Propertise
Linker
Inp
ut
8
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Tại Addtional Dependencies Các bạn thêm các
file
sa
u:
C:\O
penCV2.2
\li
b\o
pencv_
core
220.lib
C:\O
penCV2.2
\li
b\o
pencv_
highgui220
.lib
C:\O
penCV2.2
\li
b\o
pencv_legacy
22
0.l
ib
C:\O
penCV2.2
\li
b\o
pencv_
ml22
0.l
ib
C:\O
penCV2.2
\li
b\o
pencv_
img
proc22
0.l
ib
Sau
khi
thêm xong là các bạn
đã
hoàn thành
việc
cấu hình OpenCV trên
V
isual
Studio
2010.
Ghi
chú:
Đối với
bản OpenCV2.2
hay
OpenCV2.1 các bạn
làm
như nhau.
Tuy
nhiên
khi
thêm
các file thư
viện thì
các bạn
hãy vào
thư mục
C:\
Ope
nCV2.x\l
ib\tenf
il
e
.l
i
b
Trong
đó x là tên
phiên bản, tenfile là
tên
của
file. Ví dụ:
thay tenfile
=
ope
ncv_
core
22
0.li
b
Mộ
t
số hàm xử
lí
ả
nh
Đọc và
hiển
thị
ảnh
(Sử dụng thư viện: hi
ghgu
i.h)
Trước
khi hiển
th
ị
ảnh
l
ên
màn hình thì chúng ta
p
hả
i
biết
l
àm
như thế nào để tải một đọc
từ
ổ đĩa. Chúng ta
sẽ sử
dụng hàm
cvLoad
I
mage()
;
Ip
l
Image*
cvLoadImage
(
const char*
filen
ame,
int iscolor
= CV_LOAD_IMAGE_COLOR
);
fi
l
ename:
Tên
đường dẫn ảnh
iscolor:
Chế độ
hiển thị
ản
h
Mộ
t
số giá
trị
của
is
color:
CV_LOAD_IMAGE_GRAYSCALE
CV
_
LOAD_I
MAGE_A
NYDEPT
H
CV_LOAD_IMAGE_UNCHANGED
Sau
kh
i
đã đọc
được
ảnh từ ổ cứng chúng ta
sẽ
hiển thị lên màn hình bằng
h
àm
cvShowImage();
Đồng thời chúng ta phải tạo một cửa
sổ
hiển
th
ị
ảnh (Dùng
hàm
cvNamed
W
i
ndow()
;)
cvNamed
W
i
ndow(“
Tên
cửa sổ hiển thị”);
vo
i
d
cvSh
owImag
e(
const char* name,
const
C
vArr*
image
);
9
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Na
m
e:
Tên
cửa số hiển thị
ả
nh
Image:
Tên
ảnh
Chúng ta cùng
l
àm
một ví dụ cụ thể
sa
u:
#include
"
high
gui.
h"
int
ma
in()
{
IplImage*
img =
cv
Load
Image
(ima
g);
//
Tạo
biến
chứa
ả
nh
cvNamedWin
dow(
"Sho
wIMG
"
,CV_
WIND
OW_A
UTOS
IZE)
;
//
Tạo
m
ột
cửa
số hiển
t
hị
ản
h
cvShow
Imag
e(
"S
howI
MG"
,
img);
//
hiển thị ảnh
cvWaitKey(0);
//
Đ
ợi
người
dùng nhập vào
mộ
t
phím
bất kì
cvRele
aseI
mage(&im
g);
//
Giải
phóng bộ nhớ chứa
ảnh
cvDest
royW
indo
w(
"S
howI
MG"
);
//
Đóng cửa sổ chứa
ảnh
}
Lưu
ả
nh
vo
i
d
cvSa
veImag
e(
const char* name,
const
C
vArr*
image,
const
i
nt*
params
C
V_DEFA
ULT(0)
);
#include
"
high
gui.
h"
int
ma
in()
{
IplImage*
img =
cv
Load
Image
(ima
g);
//
Tạo
biến
chứa
ả
nh
cvNamedWin
dow(
"Sho
wIMG
"
,CV_
WIND
OW_A
UTOS
IZE)
;
//
Tạo
m
ột
cửa
số hiển
t
hị
ản
h
cvShow
Imag
e(
"S
howI
MG"
,
img);
//
hiển thị ảnh
IplImage* out
=
cvCrea
teIma
ge(c
vGet
Size
(img
),im
g->dep
th,i
mg->
nCha
nnel
s);
cvConv
ertI
mage
(img
,out
,
CV
_C
V
TIMG
_F
LIP
);
//
Chuyển
đổi ảnh
cvSave
Imag
e(
"D
:/te
st.b
mp"
,i
mg);
//
Lưu ảnh
với
một
tê
n
kh
ác
cvWaitKey(0);
//
Đ
ợi
người
dùng nhập vào
mộ
t
phím
bất kì
cvRele
aseI
mage(&im
g);
//
Giải
phóng bộ nhớ chứa
ảnh
cvDest
royW
indo
w(
"S
howI
MG"
);
//
Đóng cửa sổ chứa
ảnh
}
Biến đổi
ả
nh
Lọc
ảnh
Tìm biên của
ảnh
1
0
Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành
Phú
Mộ
t
số hàm xử
lí
v
id
eo
Đọc và hiển
th
ị
Video từ một
f
ile
Đọc từ
Came
r
a
Lưu
file
Video