1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thực hành xử lý số

22 852 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chuyển ảnh sang ảnh Gray, hiển thị.. Chuyển ảnh Gray sang ảnh nhị phân, hiển thị.. Tìm hiểu hàm phát hiện khuôn mặt trong OpenCV... Các thuật toán xử lý ảnh thông thường lẫn cao cấp đều

Trang 1

ĐẠI HỌC ĐÀ NẴNG - ĐẠI HỌC BÁCH KHOA

KHOA: CÔNG NGHỆ THÔNG TIN

Trang 2

Mục Lục

I HƯỚNG DẪN CÀI ĐẶT OPENCV 3

1 Giới thiệu chung về thư viện OpenCV 3

2 Hướng dẫn cài đặt OpenCV 2.1 với Visual Studio 2008 3

3 Cấu hình Visual Studio 2008 liên kết với OpenCV 8

4 Tạo một project sử dụng OpenCV 10

II SỬ DỤNG MỘT SỐ HÀM CƠ BẢN CỦA OPENCV 12

1 Tải ảnh, hiển thị lại 12

2 Chuyển ảnh sang ảnh Gray, hiển thị 12

3 Chuyển ảnh Gray sang ảnh nhị phân, hiển thị 13

4 Tách các kênh màu cvSplitPan, hiển thị 14

5 Phát hiện biên bằng các phương pháp đã học, hiển thị 15

6 Lọc ảnh(blur,gauss,median), hiển thị 16

7 Ăn mòn, làm dày, hiển thị 17

8 Cắt ngưỡng, hiển thị 18

9 Tìm hiểu hàm phát hiện khuôn mặt trong OpenCV 19

Trang 3

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.

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:

Hình 1

Trang 4

Nhấn Next, cửa sổ tiếp theo sẽ hiển thị:

Hình 2

Đọ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ị

Hình 3

Trang 5

Ở đây chọn Add OpenCV to the system PATH for all users và tiếp tục click vào Next

Hình 4

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

Trang 7

Sau một khoản thời gian cài đặt:

Hình 7

Click vào Finish để hoàn tất quá trình cài đặt

Trang 8

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

Trang 9

Hình 10

Cũng tương tự đối với Source files

Hình 11

Trang 10

4 Tạo một project sử dụng OpenCV

Chọn New Project, ở đây ta chọn Visual C++, Win32, Win32 Console Application

Hình 12

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

Trang 11

Hình 13

Trang 12

II SỬ DỤNG MỘT SỐ HÀM CƠ BẢN CỦA OPENCV

1 Tải ảnh, hiển thị lại

//Tai anh len

IplImage *im_rgb=cvLoadImage(" /Images/tahai.jpg");

/*Hien thi anh goc*/

cvShowImage("Anh Goc ", im_rgb);

Kết quả khi chạy chương trình:

Hình 14

2 Chuyển ảnh sang ảnh Gray, hiển thị

//Doi sang anh Gray

IplImage *im_gray=cvCreateImage(cvGetSize(im_rgb),IPL_DEPTH_8U,1);

cvCvtColor(im_rgb,im_gray,CV_RGB2GRAY);

//Hien thi anh Gray

cvShowImage("Anh Gray",im_gray);

Kết quả khi chạy chương trình:

Trang 13

Hình 15

3 Chuyển ảnh Gray sang ảnh nhị phân, hiển thị

//Doi anh Gray sang anh Nhi Phan

IplImage*im_binary=cvCreateImage(cvGetSize(im_gray),IPL_DEPTH_8U,1);

cvThreshold(im_gray,im_binary,100,250,CV_THRESH_BINARY);

//Hien thi anh Nhi Phan

cvShowImage("Binary 8 bit",im_binary);

Kết quả khi chạy chương trình:

Trang 14

4 Tách các kênh màu cvSplitPan, hiển thị

IplImage* imgRed = cvCreateImage(cvGetSize(im_rgb), IPL_DEPTH_8U, 1); IplImage* imgGreen = cvCreateImage(cvGetSize(im_rgb), IPL_DEPTH_8U, 1); IplImage* imgBlue = cvCreateImage(cvGetSize(im_rgb), IPL_DEPTH_8U, 1);

cvSplit(im_rgb, imgBlue, imgGreen, imgRed, 0);

cvShowImage("Blue Channel",imgBlue);

cvShowImage("Green Channel",imgGreen);

cvShowImage("Red Channel",imgRed);

Kết quả khi chạy chương trình:

Hình 17

Trang 15

Hình 18

Hình 19

5 Phát hiện biên bằng các phương pháp đã học, hiển thị

IplImage* out = cvCreateImage( cvSize(im_gray->width/2,im_gray->height/2), im_gray->depth, im_gray->nChannels);

// Reduce the image by 2

Trang 16

cvSmooth( im_rgb, Filter_BLUR, CV_BLUR, 7, 7 );

cvSmooth( im_rgb, Filter_GAUSSIAN, CV_GAUSSIAN, 7, 7 );

cvSmooth( im_rgb, Filter_MEDIAN, CV_MEDIAN, 7, 7 );

//Hien thi anh

cvShowImage("Filter BLUR",Filter_BLUR);

cvShowImage("Filter GAUSSIAN",Filter_GAUSSIAN);

cvShowImage("Filter MEDIAN",Filter_MEDIAN);

Kết quả khi chạy chương trình:

Hình 21

Trang 18

Hình 24

Hình 25

8 Cắt ngưỡng, hiển thị

IplImage* CatNguong = cvCreateImage( cvGetSize(im_rgb), im_rgb->depth, 1 );

IplImage* r = cvCreateImage( cvGetSize(im_rgb), IPL_DEPTH_8U, 1 );

IplImage* g = cvCreateImage( cvGetSize(im_rgb), IPL_DEPTH_8U, 1 );

IplImage* b = cvCreateImage( cvGetSize(im_rgb), IPL_DEPTH_8U, 1 );

// Split image onto the color planes

cvSplit( im_rgb, r, g, b, NULL );

IplImage* s = cvCreateImage( cvGetSize(im_rgb), IPL_DEPTH_8U, 1 );

Trang 19

// Add equally weighted rgb values

cvAddWeighted( r, 1./3., g, 1./3., 0.0, s );

cvAddWeighted( s, 2./3., b, 1./3., 0.0, s );

// Truncate values over 100

cvThreshold( s, CatNguong, 100, 100, CV_THRESH_TRUNC );

//Hien thi

cvShowImage("Cat nguong",CatNguong);

Kết quả khi chạy chương trình:

Hình 26

9 Tìm hiểu hàm phát hiện khuôn mặt trong OpenCV

A Phát hiện khuôn mặt trong hình ảnh

Trong OpenCV đã có sẵn file “haarcascade_frontalface_alt.xml”, chúng ta chỉ việc lấy nó ra và sử dụng Khi lấy file này ra thì chúng ta phải chỉ đường dẫn cho thật chính xác

Ví dụ: tôi cài OpenCV 2.1 trên ổ C nên đường dẫn file

“haarcascade_frontalface_alt.xml” sẽ là:

"C:/OpenCV2.1/data/haarcascades/haarcascade_frontalface_alt.xml”

Trang 20

Sau đây là code chương trình:

if (!pInpImg || !pStorage || !pCascade )

{

printf("Khoi tao that bai: %s \n",

(!pInpImg)? "khong the load file hinh anh" :

(!pCascade)? "khong the load file xml "

"kiem tra dung duong dan":"sai duong dan");

cvNamedWindow("Nhan dien khuon mat trong hinh anh",CV_WINDOW_AUTOSIZE);

for (i=0;i<(pFaceRectSeq ? pFaceRectSeq->total:0);i++)

Trang 21

Kết quả sau khi chạy chương trình:

Hình 27

B Phát hiện khuôn mặt trong Webcam

Sau đây là code chương trình:

CvCapture* capture = cvCaptureFromCAM(0);

cvNamedWindow("NHAN DIEN KHUON MAT",0);

for(;;)

{

image = cvQueryFrame(capture);

CvHaarClassifierCascade* cascade;

Trang 22

faces = cvHaarDetectObjects( image, cascade, storage, 1.2,

Ngày đăng: 27/06/2014, 22:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w