TÌM HIỂU MỘT SỐ THUẬT TOÁN VÀ XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH CƠ BẢN SỬ DỤNG OPENCV

39 1.3K 0
TÌM HIỂU MỘT SỐ THUẬT TOÁN VÀ XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH CƠ BẢN SỬ DỤNG OPENCV

Đ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

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : TÌM HIỂU MỘT SỐ THUẬT TOÁN VÀ XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH CƠ BẢN SỬ DỤNG OPENCV SINH VIÊN : NGUYỄN NGỌC SANG LỚP : 08T2 ĐƠN VỊ : TRUNG TÂM NGHIÊN CỨU ĐIỆN TỬ - TIN HỌC- TỰ ĐỘNG HÓA MIỀN TRUNG CBHD : ĐÀ NẴNG, 02/2012 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV ii LỜI CẢM ƠN Sau hai tháng thực tập học tập Trung Tâm, giúp đỡ tận tình anh chị Trung Tâm, em có kiến thức thực tế quan trọng góp phần xác định công việc tương lai hoàn thành đề tài “tìm hiểu thuật toán xử lý ảnh OpenCV ” Để đạt kết này, em nỗ lực đồng thời nhận nhiều quan tâm, giúp đỡ, ủng hộ thầy cô, bạn bè gia đình Trước hết, em xin gởi lời cảm ơn chân thành đến Khoa Công nghệ Thông tin, trường Đại học Khoa học Tự nhiên tạo điều kiện cho em thực tập “Trung Tâm nghiên cứu Điện Tử Tin Học, Tự Động Hóa” Em xin cảm ơn tất anh chị, cô trung tâm, đặt biệt thầy Ngô Văn Sỹ nguyên giám đốc trung tâm tận tình giúp đỡ tạo điều kiện cho em hoàn thành chiến thực tập Và xin chân thành cảm ơn gia đình động viên, tạo điều kiện tốt cho học tập hoàn thành tốt không tránh khỏi sai sót Kính mong cảm thông đóng góp ý kiến từ thầy cô bạn Đà Nẵng, Ngày tháng 02 năm 2013 Sinh viên thực Nguyễn Ngọc Sang MỤC LỤC SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV MỞ ĐẦU a b c d Giới thiệu đơn vị đến thực tập Giới thiệu bối cảnh đề tài Mục đích ý nghĩa .2 Giới thiệu công việc giao CHƯƠNG .4 GIỚI THIỆU VỀ OPENCV Giới thiệu tổng quan 1.1 Khái niệm 1.2 Lịch sử phát triển .4 1.3 Ứng dụng Hướng dẫn cài đặt 2.1 Chuẩn bị 2.2 Cách thực Chương trình 12 3.1 Chương trình 12 3.2 Giải thích 12 3.3 Kết 13 CHƯƠNG 14 LẬP TRÌNH VỚI OPENCV 14 Các kiểu liệu OpenCV 14 1.1 OpenCV Iplimage 15 1.2 OpenCV Mat 15 Đọc ghi ảnh .16 Video Camera 17 HighGui 18 4.1 Giới thiệu .18 4.2 Các hàm hiển thị 18 4.2.1 Load ảnh từ Disk .18 4.2.2 Tạo window để chứa ảnh .19 4.2.3 Hiện thị ảnh lên window 19 4.2.4 Một số hàm cần ý 19 4.3 Xử lý kiện 19 Sliders, Trackbars, and Switches 21 Truy cập giá trị Pixel 21 6.1 Pixel truy cập đơn giản 21 6.2 Truy cập nhanh Pixel 22 CHƯƠNG 23 XỬ LÝ ẢNH TRONG OPENCV 23 Làm trơn ảnh(Smoothing) 23 Phân ngưỡng (Threshold) 24 Flood Fill 24 Image Pyramids 25 SVTH : Nguyễn Ngọc Sang iii Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV Resize 25 CHƯƠNG 26 TRIỂN KHAI CHƯƠNG TRÌNH DEMO 26 Mô tả .26 Chức chương trình 26 Giao diện 26 Chi tiết chương trình 26 4.1 Nhận liệu từ camera 26 4.2 Ghi video 27 4.3 Các hàm dùng 27 4.3.1 Resize 27 4.3.2 Smooth .28 4.3.3 Phân ngưỡng 29 4.3.4 Histogram 30 4.3.5 Laplacian 31 KẾT LUẬN .1 SVTH : Nguyễn Ngọc Sang iv MỞ ĐẦU a Giới thiệu đơn vị đến thực tập 1) Giới thiệu tổng quan - Tên doanh nghiệp: Trung tâm nghiên cứu điện tử, tin học, tự động hóa Miền Trung - Tên tiếng Anh: Vietnam Research Institude of Electronics, Information and Automation - Brand in Central Region - Tên viết tắt: VIELINA-CR - Trụ sở: Trụ sở Trung tâm : Tầng – Nhà D, 99 Tô Hiến Thành, Quận Sơn Trà, Tp Đà Nẵng - Cơ quan định thành lập: Viện NC Điện tử, Tin học, Tự động hóa - Cơ quan chủ quản: Viện NC Điện tử, Tin học, Tự động hóa 2) Quá trình hình thành phát triển Trung tâm Điện tử, Tin học,Tự động hóa Miền Trung thành lập theo Quyết định số: /VĐT-TC ngày 21/02/2012 Viện trưởng Viện NC Điện tử, Tin học, Tự động hoá Trung tâm có chức nhiệm vụ sau: - Thực nghiên cứu khoa học công nghệ vấn đề thực tiễn đặt lĩnh vực Điện tử, Tin học, Tự động hóa chuyển giao kết nghiên cứu vào thực tế sản xuất - Thực bảo trì, bảo dưỡng, sửa chữa, tư vấn kỹ thuật thiết bị điện tử chuyên dụng, thiết bị tự động công nghiệp nói riêng ngành kinh tế quốc dân nói chung - Đào tạo phổ cập, đào tạo lại cho đối tượng có nhu cầu cán khoa học kỹ thuật doanh nghiệp chuyên ngành Công nghệ thông tin Tự động hóa 3) Biên chế Trung tâm có 05 Cán nghiên cứu 01 Tiến sĩ Điện tử - Viễn thông, 02 Thạc sĩ Tự động hóa, 01 Cử nhân Tin học, 01 Cử nhân Kinh tế Ngoài để tận dụng tối đa nguồn lực trí tuệ, phát huy hiệu hoạt động nghiên cứu, đào tạo kinh doanh, Trung tâm mời số cộng tác viên thường xuyên: 05 TS chuyên gia hàng đầu lĩnh vực Điện tử, Tin học, Tự động hoá khu vực Miền Trung Tây Nguyên 4) Diện tích làm việc: Diện tích sử dụng gồm 01 phòng khoảng 50m tầng nhà D Trường Cao Đẳng Nghề Đà Nẵng, 02 phòng khoảng 70m2 tầng nhà cho thuê b Giới thiệu bối cảnh đề tài Sắp tới số tuyến đường cao tốc đưa vào khai thác Đây tuyến đường giao thông đại có lưu lượng thông xe lớn tốc độ nhanh, chắn đóng góp tích cực vào phát triển kinh tế xã hội đồng thời đặt vấn đề lớn quản lý, vận hành khai thác chúng Công nghệ ITS ứng dụng nhiều nước tiến tiến giới khu vực với nhiều ứng dụng tiện ích chủ yếu gồm: • Tổ chức mạng lưới thông tin trung tâm điều hành giao thông; • Thông tin điều hành kiểm soát giao thông đường • Thu phí không dừng (ETC) • Kiểm soát xe tải trọng nặng • Thông tin tắc nghẽn cố; • Thông tin thời tiết tình trạng mặt đường; • Thông tin thời gian lại • Hỗ trợ thông tin xe Bus • Cung cấp thông tin nơi đỗ xe thu phí điểm đỗ xe Tại trung tâm, đề tài cấp nghiên cứu, thiết kế chế tạo micro inverter có dự án dự án xây dựng hệ thống bãi giữ xe trung tâm thành phố Đà Nẵng ,dự án nghiên cứu thí nghiệm điện tử …Thì đề tài đề xuất ứng dụng xử lý vào xây dựng hệ thống giao thông Do ,em giao cho đề tài để nghiên cứu : “Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV” c Mục đích ý nghĩa • Cung cấp kiến thức xử lý ảnh • Nâng cao chất lượng ảnh • Với kiến thức OpenCV xử lý ảnh tạo tiền đề cho trình xây dựng hệ thống quản lý giám sát giao thông d Giới thiệu công việc giao Với đề tài ta cần nghiên cứu: • Tìm hiểu OpenCV • Tìm hiểu xử lý ảnh OpenCV • Tìm hiểu thuật toán xử lý ảnh tăng cường độ phân giải ảnh • Xây dựng chương trình Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV Nội dung báo cáo trình bày gồm phần sau: MỞ ĐẦU Chương 1: GIỚI THIỆU VỀ OPENCV Chương 2: LẬP TRÌNH VỚI OPENCV Chương 3: XỬ LÝ ẢNH TRONG OPENCV Chương 4: TRIỂN KHAI CHƯƠNG TRÌNH DEMO KẾT LUẬN SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV CHƯƠNG GIỚI THIỆU VỀ OPENCV Giới thiệu tổng quan 1.1.Khái niệm OpenCV open source (xem http://opensource.org) computer vision library có sẵn http://SourceForge.net/projects/opencvlibrary Thư viện viết C C++ chạy Linux, Windows Mac OS X Có phát triển tích hợp với giao diện cho Python, Ruby, Matlab, ngôn ngữ khác Intel phát hành phiên OpenCV vào năm 1999 Ban đầu, yêu cầu thư viện xử lý hình ảnh Intel Nhưng vấn đề phụ thuộc gỡ bỏ bạn sử dụng OpenCV thư viện độc lập 1.2.Lịch sử phát triển OpenCV phát triển từ nghiên cứu Intel khởi xướng cho ứng dụng tận dụng CPU tối đa Hướng đến kết này, Intel khởi trương nhiều dự án gồm realtime ray tracing 3D display walls Một người làm việc cho Intel thời điểm thăm trường đại học nhận thấy số trường học đỉnh cao, chẳng hạn MIT Media Lab, có sở phát triển họ mã đến sinh viên mà cho sinh viên phát triễn ứng dụng dựa tảng Do đó, OpenCV hiểu cách làm hạ tầng sẵn có Với hỗ trợ Intel’s Performance Library Team, OpenCV bắt đầu với lõi tiên chuẩn mã thuật toán thực gửi đến thành viên Intel’s Russian library team Chủ chốt nhóm người Nga Vadim Pisarevsky, người quản lý, mã, tối ưu nhiều OpenCV người có nỗ lực với OpenCV Cùng với anh, Victor Eruhimov hỗ trợ phát triển cấu trúc ban đầu, Valery Kuriakin điều hành Russian lab hỗ trợ lớn cho phát triển Mục đích cho OpenCV lúc bắt đầu: • Phát triển mã nguồn không mở mà tối ưu ,Không phát triển lại có trước • Phổ biến kiến thức cho thành viên, chương trình đọc dể hiểu khả chuyển • Các ứng dụng thương mại dựa vision cao cấp mã khả chuyển, thực tối ưu sẵn có miễn phí—với quyền mà không đòi hỏi ứng dụng thương mại mở hay miễn phí Nhưng mục tiêu tạo thành “lý do” cho phép ứng dụng gia tăng nhu cầu cho processor nhanh Dẫn đến nâng cấp processor nhanh mà tạo nhu cầu cho Intel bán extra software Đó lý mã mở miễn phí lại phát triển từ công ty software Bây có xấp xỉ hai triệu download OpenCV, số tăng trung bình 26,000 downloads tháng.User group gần đến 20,000 members OpenCV nhận nhiều hợp tác nhiều người dùng trung tâm bên công ty Ngày nay, OpenCV lĩnh vực tích cực vài tổ chức, mong muốn thấy nhiều cập SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV nhâthtrong hiệu chỉnh nhiều camera, nhận biết độ sâu, phương pháp trộn vision với laser range finder, nhận biết mẫu tốt nhiều hỗ trợ cho nhu cầu robot 1.3.Ứng dụng Khi alpha release January 1999, OpenCV dùng nhiều ứng dụng, sản phẩm, nỗ lực nghiên cứu Các ứng dụng gồm nối ảnh với đồ vệ tinh web, xếp ảnh quét, giảm nhiễu ảnh y học, phân tích đối tượng, an ninh hệ dò xâm nhập, hệ giám sát tự động an toàn, hệ thẩm tra sản xuất, chỉnh camera, ứng dụng quân sự, phương tiện không, đất, nước không người Nó dùng nhận diện âm thành âm nhạc, nơi kỹ thuật nhận biết vision áp dụng với ảnh spectrogram âm OpenCV phần quan trọng ứng dụng robot Hướng dẫn cài đặt OpenCV thư viện mã nguồn mở Computer Vision Intel thiết kế, cung cấp hàm, lớp ứng dụng thuật toán xử lý ảnh với ngôn ngữ C/C++.Dưới cách cài đặt thư viện OpenCV 2.4.3 với công cụ Visual Studio 2010 2.1.Chuẩn bị Để cài đặt sử dụng OpenCV với Visual Studio 2010 cần phải download phần sau: • Bộ OpenCV 2.4.3 bạn download (http://sourceforge.net/projects/opencvlibrary/files/opencv-win/) • Bộ Visual Studio 2010 2.2.Cách thực Sau download ta tiến hành giải nén thư mục “C:/opencv” Bạn thay đổi muốn lưu ý cần phải nhớ sử dụng phần Chọn đường dẫn SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV Giải nén Sau giải nén xong ,t hay đổi giá trị biến “Path” máy tính bạn Click chuột phải vào máy tính chọn properties, sau chọn tab “advanced” click “Environment Variables” SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 21 CvMouseCallback on_mouse, void* param); const char* window : tên windon cần bắt kiện chuột CvMouseCallback on_mouse : hàm callback xây dựng bên Sliders, Trackbars, and Switches Trong HighGUI, slider gọi trackbars : trượt mà ứng với môt vị trí trượt(slider) cho ta giá trị hệ thống Đây ban đầu chúng tập trung cho chọn frame cụ thể playback video Hàm để tạo Trackbar int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change ); Truy cập giá trị Pixel Nó tạo nhiều loại chức sử dụng OpenCV mà không trực tiếp truy cập vào liệu pixel liệu Ví dụ, chương trình nhận diện khuôn mặt,theo dõi, nhận không thao tác liệu pixel liệu trực tiếp Tuy nhiên, bạn viết thuật toán xử lý hình ảnh riêng bạn, bạn cần truy cập vào giá trị pixel liệu Dưới hai cách để làm điều đó: 6.1.Pixel truy cập đơn giản Cách dễ để đọc điểm ảnh cá nhân với cvGet2D ():CvScalar cvGet2D (const CvArr *, int row, int col);Chức có ba thông số: trỏ đến thùng chứa liệu (CVArr *) mảng số hàng vị trí cột Các thùng chứa liệu cấu trúc IplImage Hàng điểm ảnh hàng = 0, = chiều cao-1 hàng CvGet2D () chức trả cấu trúc C, CvScalar, định nghĩa là: CvScalar typedef struct { double val [4]; } CvScalar; Các giá trị pixel cho kênh val [i] Đối với màu xám hình ảnh, val [0] chứa độ sáng điểm ảnh Ba giá trị khác thiết lập SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 22 Đối với kênh ba, BGR hình ảnh, màu xanh = val [0], xanh = val [1], màu đỏ = val [2] Các chức bổ sung, cvSet2D () cho phép bạn chỉnh sửa giá trị pixel Đó định nghĩa: cvSet2D khoảng trống (CvArr *, int row, int col, CvScalar); 6.2.Truy cập nhanh Pixel Mặc dù cvGet2D() cvSet2D() dễ sử dụng, bạn muốn truy cập nhiều vài giá trị pixel, vấn đề hiệu suất, bạn muốn đọc giá trị trực tiếp từ đệm liệu thô IplImage.imageData Đối với lý hiệu suất, liệu pixel liên kết, đệm cần thiết, cho hàng bắt đầu vào ngày nhiều bốn-byte Một lĩnh vực thứ hai, IplImage.widthStep, cho biết số lượng byte bắt đầu liệu điểm ảnh hang: IplImage.imageData +i*IplImage.widthStep IplImage.imageData định nghĩa kiểu char *, bạn cần phải bỏ kiểu liệu.Ví dụ, liệu bạn hình ảnh byte unsigned (các loại đầu vào phổ biến nhất), SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 23 CHƯƠNG XỬ LÝ ẢNH TRONG OPENCV Làm trơn ảnh(Smoothing) Smoothing, gọi blurring, trình xử lý ảnh dùng đơn giản thường xuyên Có nhiều nguyên nhân để smoothing, thường làm để giảm nhiễu Opencv cung cấp kiểu làm trơn ảnh khác ,tất chúng hỗ trợ function cvSmooth() để thực thi cần cung cấp tham số Dưới mô tả void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype = CV_GAUSSIAN, int param1 = 3, int param2 = 0, double param3 = 0, double param4 = ); Trong : src dst arguments nguồn đích bình thường cho tác vụ smooth cv_Smooth() function có bốn parameter với tên không thông báo đặc biệt param1, param2, param3, param4 Kiểu Smooth Tên Tại chỗ ? CV_BLUR Blur đơn giản Yes CV_BLUR_NO_SCAL E Blur đơn giản không tỉ lệ CV_MEDIAN CV_GASSIAN SVTH : Nguyễn Ngọc Sang Nc Độ sâu src 1, 8u,32 f Độ sâu dst Mô tả 8u,32f No 8u Cộng với lân cận param1xparam2 với tỉ lệ tiếp sau 1/ (param1xparam2) Tổng lân cận param1xparam2 Media blur No 1, 8u Gassian Blur Yes 1, 8u,32 f 16s(ch o nguồn 8u) hay 32f(cho nguồn 32f) 8u Tìm mediam lân cận param1xparam2 8u(cho Tổng lân cận nguồn param1xparam2 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV CV_BILATERAL Bilatera l blur No 1, 8u 24 8u) hay 32f(cho nguồn 32f) 8u Áp dụng lọc 3x3 bilateral với màu sigma=param1 không gian sigma=param2 Bảng mô tả Smooth Phân ngưỡng (Threshold) Để thực phân ngưỡng OpenCV function cvThreshold() hoàn thành nhiệm vụ Hàm mô tả double cvThreshold( CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ); Trong : Threshold type Operation CV_THRESH_BINARY dsti = ( srci > T ) ? M : CV_THRESH_BINARY_INV dsti = ( srci > T ) ? : M CV_THRESH_TRUNC dsti = ( srci > T ) ? M : srci CV_THRESH_TOZERO_IN dsti = ( srci > T ) ? : srci V CV_THRESH_TOZERO dsti = ( srci > T ) ? srci : Flood Fill Flood fill function hữu ích mà thường dùng để đánh dấu hay cách ly phần image để xử lý hay phân tích xa Flood fill dùng để tìm nguồn, từ input image, đánh dấu mà dùng cho routines để tăng tốc hay giới hạn xử lý với pixel nhận diện mask Kết flood fill operation luôn vùng liên tục đơn cvFloodFill() function tô màu pixel láng giềng bên dải cụ thể Prototype cho flood fill routine là: void cvFloodFill( IplImage* img, CvPoint seedPoint, CvScalar newVal, CvScalar loDiff= cvScalarAll(0), CvScalar upDiff= cvScalarAll(0), SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 25 CvConnectedComp* comp = NULL, int flags = 4, CvArr* mask = NULL ); Image Pyramids OpenCV hỗ trợ hàm phóng to thu thu nhỏ hình ảnh void cvPyrDown( IplImage* src, IplImage* dst, IplFilter filter = IPL_GAUSSIAN_5x5 }; void cvPyrUp( IplImage* src, IplImage* dst, IplFilter filter = IPL_GAUSSIAN_5x5 ); Resize Ta thường làm việc với image vài size mà ta thích chuyển thành image với vài size khác Ta muốn upsize (zoom in) hay downsize (zoom out) image; ta hoàn thành nhiệu vụ dùng cvResize() void cvResize( const CvArr* src, CvArr* dst, int interpolation = CV_INTER_LINEAR ); Interpolation Meaning CV_INTER_NN Nearest neighbor CV_INTER_LINEA Bilinear R CV_INTER_AREA Pixel area resampling CV_INTER_CUBIC Bicubic interpolation SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 26 CHƯƠNG TRIỂN KHAI CHƯƠNG TRÌNH DEMO Mô tả Sau tìm hiểu OpenCV vài thuật toán xử lý ảnh số, chương trình sư kết hợp Windows Form C++ OpenCV thực bước biến đổi sơ cấp, trình xử lý ảnh số Chức chương trình • • • • Chương trình thực chức Lấy liệu từ camera Lưu video, hình ảnh cần xử lý Sử dụng số hàm thuật toán OpenCV Thu kết trả hiển thị lên hình Giao diện Chi tiết chương trình 4.1.Nhận liệu từ camera capture = cvCaptureFromCAM(0); timer1->Start(); //dùng Timer để hiển thị ảnh thu SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 4.2.Ghi video CvVideoWriter *writer; writer = cvCreateVideoWriter("test.avi", -1 , 10 , size, color); 4.3.Các hàm dùng 4.3.1 Resize Phóng to cvPyrUp( framepic, dst_img ); Thu nhỏ cvPyrDown( framepic, dst_img ); SVTH : Nguyễn Ngọc Sang 27 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 4.3.2 Smooth cvSmooth(framepic,dst_img,CV_MEDIAN,3,3,0,0); cvSmooth(framepic,dst_img,CV_BILATERAL,23,23,100.0,100.0); cvSmooth(framepic,dst_img,CV_GAUSSIAN,3,3,1.8,1.9); cvSmooth(framepic,dst_img,CV_BLUR,3,3,1.8,1.9); SVTH : Nguyễn Ngọc Sang 28 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 4.3.3 Phân ngưỡng cvThreshold(framepic,dst_img,100,255,CV_THRESH_BINARY); cvThreshold(framepic,dst_img,100,255,CV_THRESH_BINARY_INV); cvThreshold(framepic,dst_img,100,255,CV_THRESH_TRUNC); cvThreshold(framepic,dst_img,100,255,CV_THRESH_TOZERO_INV); SVTH : Nguyễn Ngọc Sang 29 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV cvThreshold(framepic,dst_img,100,255,CV_THRESH_TOZERO); 4.3.4 Histogram calcHist(&colors[0], 1, chnls, Mat(), hist,1,hsize,ranges); SVTH : Nguyễn Ngọc Sang 30 Đề tài : Tìm hiểu số thuật toán xây dựng chương trình xử lý ảnh sử dụng OpenCV 4.3.5 Laplacian cvLaplace(framepic,dst_img); SVTH : Nguyễn Ngọc Sang 31 KẾT LUẬN Trong thời gian nghiên cứu, nhờ giúp đỡ tậm tình anh chị, thầy trung tâm giúp em định hướng việc phải làm tạo điều kiện cho em hoàn thành đề tài nghiên cứu Vấn đề đặt kết hợp OpenCV với windows form c++, tìm hiểu cài đặt số thuật toán OpenCV Do thời gian thực tập hạn chế nên báo cáo nhiều khuyết điểm tảng cho em tương lai nghiên cứu sau vào Đồ án tốt nghiệp ứng dụng sống Em xin chân thành cảm ơn SVTH : Nguyễn Ngọc Sang PHỤ LỤC SVTH : Nguyễn Ngọc Sang TÀI LIỆU THAM KHẢO [1] Lương Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, NXB Khoa học kỹ thuật, Hà Nội [2] Xử lý ảnh số ,Ts Ngô Văn Sỹ ,Khoa Điện Tử Viễn Thông Đại Học Bách Khoa Đà Nẵng [3] Xử lý ảnh số ,Ts Huỳnh Hữu Hưng ,Khoa Công Nghệ Thông Đại Học Bách Khoa Đà Nẵng [4] Ebook Digital Image Processing [5] http://souceforce.net/projcets/opencvlibrary [6] Ebook OReilly-LearningOpenC [...]... : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV Chọn edit để thêm vào SVTH : Nguyễn Ngọc Sang 7 Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV Thêm vào Path Variable: C: \opencv\ opencv\build\x86\vc10\bin C: \opencv\ opencv\build\common\tbb\ia32\vc10 SVTH : Nguyễn Ngọc Sang 8 Đề tài : Tìm hiểu một số thuật toán và xây dựng. .. tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 26 CHƯƠNG 4 TRIỂN KHAI CHƯƠNG TRÌNH DEMO 1 Mô tả Sau khi tìm hiểu OpenCV và một vài thuật toán cơ bản trong xử lý ảnh số, chương trình dưới đây là sư kết hợp của Windows Form C++ và OpenCV thực hiện các bước biến đổi sơ cấp, cơ bản trong quá trình xử lý ảnh số 2 Chức năng của chương trình • • • • Chương trình. .. tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV Đây là chương trình đọc ảnh từ "C:/lena.png" các lệnh sẽ được giải thích ở chương sau 3.3.Kết quả SVTH : Nguyễn Ngọc Sang và hiển thị ra màn hình 13 Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 14 CHƯƠNG 2 LẬP TRÌNH VỚI OPENCV 1 Các kiểu dữ liệu trong OpenCV OpenCV... dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV Tạo 1 project C++ trong visual studio ,click chuột phải chọn properties SVTH : Nguyễn Ngọc Sang 9 Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV Chọn C/C++ vài edit the Additional Include Directories.thêm vào C: \opencv\ opencv\build\include \opencv C: \opencv\ opencv\build\include Tiếp tục chọn linker và chọn... Lưu video, hình ảnh cần xử lý Sử dụng một số hàm thuật toán cơ bản trong OpenCV Thu kết quả trả về hiển thị lên màn hình 3 Giao diện chính 4 Chi tiết chương trình 4.1.Nhận dữ liệu từ camera capture = cvCaptureFromCAM(0); timer1->Start(); //dùng Timer để hiển thị ảnh thu được SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 4.2.Ghi video... Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 4.3.2 Smooth cvSmooth(framepic,dst_img,CV_MEDIAN,3,3,0,0); cvSmooth(framepic,dst_img,CV_BILATERAL,23,23,100.0,100.0); cvSmooth(framepic,dst_img,CV_GAUSSIAN,3,3,1.8,1.9); cvSmooth(framepic,dst_img,CV_BLUR,3,3,1.8,1.9); SVTH : Nguyễn Ngọc Sang 28 Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý. .. : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 11 Thêm vào C: \opencv\ opencv\build\x86\vc10\lib Nhấp chuột vào dấu cộng chọn input ,chon additional Dependencies thêm vào có thư viện opencv_ core243d.lib opencv_ imgproc243d.lib opencv_ highgui243d.lib opencv_ ml243d.lib opencv_ video243d.lib opencv_ features2d243d.lib opencv_ calib3d243d.lib opencv_ objdetect243d.lib opencv_ contrib243d.lib... Giả sử bạn muốn vẽ một rectangle trắng giữa (5, 10) và (20, 30); bạn có thể đơn giản gọi: cvRectangle( myImg, cvPoint(5,10), cvPoint(20,30), SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 15 cvScalar(255,255,255) ); 1.1 .OpenCV Iplimage OpenCV lưu trữ hình ảnh như là một cấu trúc C, IplImage IPL là viết tắt của Thư viện xử lý hình ảnh. .. điểm ảnh của hang: IplImage.imageData +i*IplImage.widthStep IplImage.imageData được định nghĩa là kiểu char *, vì vậy bạn có thể cần phải bỏ kiểu dữ liệu.Ví dụ, nếu dữ liệu của bạn hình ảnh byte unsigned (các loại đầu vào phổ biến nhất), SVTH : Nguyễn Ngọc Sang Đề tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 23 CHƯƠNG 3 XỬ LÝ ẢNH TRONG OPENCV 1 Làm trơn ảnh( Smoothing)... tài : Tìm hiểu một số thuật toán và xây dựng chương trình cơ bản xử lý ảnh sử dụng OpenCV 17 Để đọc một tập tin hình ảnh, chỉ cần gọi cvLoadImage(), và truyền vào trong hàm đường dẫn OpenCV hỗ trợ các định dạng hình ảnh phổ biến nhất, bao gồm JPEG, PNG, và BMP Bạn không cần phải cung cấp thông tin định dạng cvLoadImage() xác định định dạng tập tin bằng cách đọc phần đầu tập tin Để viết một hình ảnh tập

Ngày đăng: 30/12/2015, 20:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan