ĐẠI HỌC ĐÀ NẴNG - ĐẠI HỌC BÁCH KHOA
KHOA: CÔNG NGHỆ THÔNG TIN
O0O
BÁO CÁO
HỌC PHẦN: THỰC HÀNH XỬ LÝ ẢNH
Giáo viên hướng dẫn : Ts. Huỳnh Hữu Hưng
Sinh viên thực hiện : Đinh Ngọc Hưng
Lớp : 09TLT
Đà Nẵng, tháng 03, năm 2010
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 2
I. HƯỚNG DẪN CÀI ĐẶT OPENCV
1. Giới thiệu chung về thư viện OpenCV
OpenCV (Intel Open Source Computer Vision Library) là một thư viện mã
nguồn mở của Intel viết cho xử lý ảnh. OpenCV gồm các hàm được xây dựng cho
việc xử lý thị giác máy thời gian thực (real time computer vision). Các thuật toán
xử lý ảnh thông thường lẫn cao cấp đều được tối ưu hóa bởi các nhà phát triển thư
viện thành các hàm đơn giản và cho người dùng dễ dàng sử dụng. OpenCV hỗ trợ
hai ngôn ngữ chính c/C++ và python.
2. Hướng dẫn cài đặt OpenCV 2.1 với Visual Studio 2008.
Hướng dẫn cài đặt open CV 2.1 trên Visual Studio 2008, các phiên bản khác
tương tự.
Download miễn phí phần mềm OpenCV trên Internet.
Double click vào biểu tượng setup OpenCV 2.1. Cửa sổ setup sẽ hiển thị lên
như sau:
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 3
Nhấn Next, cửa sổ tiếp theo sẽ hiển thị:
Đọc các điều khoản, đồng ý click vào I Agree, Cancel nếu không đồng ý và
hủy bỏ cài đặt. Chọn Iagree, cửa sổ tiếp theo sẽ hiển thị.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 4
Ở đây chọn Add OpenCV to the system PATH for all users và tiếp tục click
vào Next.
Chọn đường dẫn cài đặt cho chương trình, mặc định sẽ là C:\OpenCV2.1.
Nhần Next để tiếp tục.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 5
Tiếp tục Next
Ở đây chọn full để chương trình cài đặt toàn bộ thư viện. Sau đó click vào
Install để tiến hành cài đặt.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 6
Sau một khoản thời gian cài đặt:
Click vào Finish để hoàn tất quá trình cài đặt.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 7
3. Cấu hình Visual Studio 2008 liên kết với OpenCV.
Mở Visual Studio 2008 lên. Click vào menu Tool, chọn Option, chọn
Projects and Solution.
Tại Show directories for chọn: Include files. Tạo 2 derectory mới dẫn đến
thư mục đã cài OpenCV
Tiếp theo cũng tại Show directories for chọn: Library files.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 8
Cũng tương tự đối với Source files.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 9
4. Tạo một project sử dụng OpenCV.
Chọn New Project, ở đây ta chọn Visual C++, Win32, Win32 Console
Application.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 10
Nhấn chuột phải vào project chọn Properties/Configuration
Properties/Linker/ Input.
Chọn Configuration là Debug. Tại Additional Dependencies đánh vào:
cv210d.lib cvaux210d.lib cxcore210d.lib cxts210d.lib cvhaartraining.lib
highgui210d.lib ml210d.lib opencv_ffmpeg210d.lib.
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 11
II. SỬ DỤNG MỘT SỐ HÀM CƠ BẢN CỦA OPENCV
1. Tải và hiển thị một hình ảnh:
Tạo một file mới và có nội dung như sau:
#include <cv.h>
#include <highgui.h>
int main(int argc, char** argv) {
//Tạo một biến img để load hình ảnh vào
IplImage* img = cvLoadImage("./Images/Xoom vs Ipad.jpg");
//Tạo một cửa sổ với tên OpenCV with Visual Studio 2008
cvNamedWindow("OpenCV with Visual Studio 2008",
CV_WINDOW_AUTOSIZE);
//Hiển thị ảnh
cvShowImage("OpenCV with Visual Studio 2008", img);
//Chờ người dùng nhấn phím bất kỳ
cvWaitKey(0);
//Release Image and Destroy Window
cvReleaseImage(&img);
cvDestroyWindow("OpenCV with Visual Studio 2008");
return 0;
}
Chạy chương trình ta được:
2. Chuyển ảnh màu sang ảnh xám.
Sử dụng hàm cvCvtColor
#include <cv.h>
#include <highgui.h>
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 12
int main(int argc, char** argv) {
//Tạo một biến img để load hình ảnh vào
IplImage* img = cvLoadImage("./Images/Xoom vs Ipad.jpg");
// Tạo một biến imgGray chứa ảnh xám
IplImage* imgGray = cvCreateImage(cvSize(img->width, img-
>height), IPL_DEPTH_8U, 1);
cvCvtColor(img, imgGray, CV_BGR2GRAY);
// Kiểm tra ảnh hiện tại phải ảnh xám chưa
if(img->nChannels != 1)
{
// Chuyển ảnh màu thành ảnh xám
cvCvtColor(img, imgGray, CV_BGR2GRAY);
}
else
{
imgGray = img;
}
cvNamedWindow("OpenCV with Visual Studio",
CV_WINDOW_AUTOSIZE);
//Show the image into that window
cvShowImage("OpenCV VS2008", imgGray);
//Wait for a key pressed
cvWaitKey(0);
//Then release image and destroy window
cvReleaseImage(&imgGray);
cvDestroyWindow("Open CV");
return 0;
//Tạo một cửa sổ với tên OpenCV with Visual Studio 2008
cvNamedWindow("OpenCV with Visual Studio 2008",
CV_WINDOW_AUTOSIZE);
//Hiển thị ảnh
cvShowImage("OpenCV with Visual Studio 2008", imgGray);
//Chờ người dùng nhấn phím bất kỳ
cvWaitKey(0);
//Release Image and Destroy Window
cvReleaseImage(&imgGray);
cvDestroyWindow("OpenCV with Visual Studio 2008");
return 0;
}
Kết quả:
Báo cáo: Thực hành Xử Lý Ảnh GVHD: Ts. Huỳnh Hữu Hưng
SVTH: Đinh Ngọc Hưng. Lớp: 09TLT Trang: 13