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

22 706 1
  • Loading ...
1/22 trang

Thông tin tài liệu

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

ĐẠI HỌC ĐÀ NẴNG - ĐẠI HỌC BÁCH KHOA KHOA: CÔNG NGHỆ THÔNG TIN O0O BÁO CÁO THỰC HÀNH XỬ ẢNH SỐ Giáo viên hướng dẫn : Ts. Huỳnh Hữu Hưng Sinh viên thực hiện : Võ Tá Hải Lớp : 10T1LT.H2 Huế, tháng 03, năm 2012 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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ử ảnh. OpenCV gồm các hàm được xây dựng cho việc xử thị giác máy thời gian thực (real time computer vision). Các thuật toán xử ả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. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 Trang: 6 Hình 5. Tiếp tục Next Hình 6. Ở đâ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ử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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. Hình 8. Tại Show directories for chọn: Include files. Tạo 2 derectory mới dẫn đến thư mục đã cài OpenCV Hình 9. Tiếp theo cũng tại Show directories for chọn: Library files. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 Trang: 9 Hình 10. Cũng tương tự đối với Source files. Hình 11. Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 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. [...].. .Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng Hình 13 SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 11 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng 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");... *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: SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 12 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng 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);... 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: Hình 16 SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 13 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng 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),... 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 SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 14 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng 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,... ); // Perform canny edge detection cvCanny( out, out, 10, 100, 3 ); // Hien thi anh cvShowImage("Lay Bien", out); Kết quả khi chạy chương trình: SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 15 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng Hình 20 6 Lọc ảnh(blur,gauss,median), hiển thị IplImage* Filter_BLUR = cvCreateImage( cvGetSize(im_rgb), IPL_DEPTH_8U, 3 ); IplImage* Filter_GAUSSIAN = cvCreateImage(... 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 SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 16 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng Hình 22 Hình 23 7 Ăn mòn, làm dày, hiển thị IplImage* AnMon=cvCreateImage(cvGetSize(im_rgb),IPL_DEPTH_8U,3); IplImage* LamDay=cvCreateImage(cvGetSize(im_rgb),IPL_DEPTH_8U,3);... //Lam day cvErode( im_rgb, LamDay, NULL, 11); //Hien thi cvShowImage("An Mon",AnMon); cvShowImage("Lam Day",LamDay); Kết quả khi chạy chương trình: SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 17 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng Hình 24 Hình 25 8 Cắt ngưỡng, hiển thị IplImage* CatNguong = cvCreateImage( cvGetSize(im_rgb), im_rgb->depth, 1 ); // Allocate image planes IplImage* r = cvCreateImage(... 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 ); SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 18 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng // 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(... 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” SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 19 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng Sau đây là code chương trình: int main() { CvHaarClassifierCascade * pCascade = 0; //con trỏ nhận diện, nắm giữ data trong file XML CvMemStorage * pStorage = 0;... //giải phòng bộ nhớ cvReleaseImage(&pInpImg); if (pCascade) cvReleaseHaarClassifierCascade(&pCascade); if (pStorage) cvReleaseMemStorage(&pStorage); } SVTH: Võ Tá Hải Lớp: 10T1LT.H2 Trang: 20 Báo cáo: Thực hành Xử Ảnh Số GVHD: Ts Huỳnh Hữu Hưng 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: #include "stdafx.h" #include "cv.h" #include "highgui.h" . BÁO CÁO THỰC HÀNH XỬ LÝ ẢNH SỐ Giáo viên hướng dẫn : Ts. Huỳnh Hữu Hưng Sinh viên thực hiện : Võ Tá Hải Lớp : 10T1LT.H2 Huế, tháng 03, năm 2012 Báo cáo: Thực hành Xử Lý Ảnh Số. Báo cáo: Thực hành Xử Lý Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 Trang: 9 Hình 10. Cũng tương tự đối với Source files. Hình 11. Báo cáo: Thực hành Xử Lý Ảnh Số. opencv_ffmpeg210d.lib. Báo cáo: Thực hành Xử Lý Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng SVTH: Võ Tá Hải. Lớp: 10T1LT.H2 Trang: 11 Hình 13. Báo cáo: Thực hành Xử Lý Ảnh Số GVHD: Ts. Huỳnh Hữu Hưng
- Xem thêm -

Xem thêm: báo cáo thực hành xử lý số, báo cáo thực hành xử lý số, báo cáo thực hành xử lý số

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn