Mục tiêu của đề tài là xây dựng một hệ thống đếm đối tượng trong ảnh được chụp bằng camera, nhúng dữ liệu đếm được xuống kit Arduino để điều khiển LCD hiển thị kết quả đếm được. Đề tài sử dụng thuật toán đánh nhãn để đối tượng trong ảnh. Xây dựng giao diện để người dùng có thể dễ dàng thao tác. Viết hướng dẫn thao tác sử dụng hệ thống.
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM ĐỐI TƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD GVHD: ThS Nguyễn Duy Thảo SVTH: Phan Thành Hưng MSSV: 13141125 Tp Hồ Chí Minh - 1/2018 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM ĐỐI TƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD GVHD: ThS Nguyễn Duy Thảo SVTH: Phan Thành Hưng MSSV: 13141125 Tp Hồ Chí Minh - 1/2018 TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP Hồ Chí Minh, ngày 15 tháng năm 2018 BẢNG MÔ TẢ CÔNG VIỆC Họ tên sinh viên 1: PHAN THÀNH HƯNG MSSV: 13141125 Lớp: 13141DT3A Họ tên sinh viên 2: TRẦN VĂN THẠCH MSSV: 13141304 Lớp: 13141DT3A Tên đề tài: ĐẾM ĐỐI TƯỢNG TRONG ẢNH MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI: Mục tiêu đề tài xây dựng hệ thống đếm đối tượng ảnh chụp camera, nhúng liệu đếm xuống kit Arduino để điều khiển LCD hiển thị kết đếm Đề tài sử dụng thuật toán đánh nhãn để đối tượng ảnh Xây dựng giao diện để người dùng dễ dàng thao tác Viết hướng dẫn thao tác sử dụng hệ thống MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI CỦA TỪNG SINH VIÊN: Họ tên Sinh viên 1: PHAN THÀNH HƯNG Các công việc thực đề tài: STT NỘI DUNG CÔNG VIỆC Tham khảo tài liệu liên quan đến đề tài tác giả thực Viết chương trình đếm đối tượng( thuật toán đánh nhãn), điều khiển kit Arduino Chỉnh sửa hệ thống Viết báo cáo ii Họ tên Sinh viên 2: TRẦN VĂN THẠCH Các công việc thực đề tài: STT NỘI DUNG CÔNG VIỆC Tham khảo tài liệu liên quan đến đề tài tác giả thực Viết chương trình đếm đối tượng (thuật tốn đánh nhãn), điều khiển kit Arduino Chụp ảnh phục vụ cho trình đếm đối tượng Chỉnh sửa báo cáo SINH VIÊN SINH VIÊN (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) iii TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Tp HCM, ngày 15 tháng năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Phan Thành Hưng MSSV: 13141125 Trần Văn Thạch MSSV: 13141304 Kỹ thuật Điện Tử Truyền Thông Mã ngành: 01 Đại học quy Mã hệ: 2013 Lớp: 13141DT3A I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM SỐ LƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD II NHIỆM VỤ Các số liệu ban đầu: Bộ ảnh đếm: 30 ảnh gồm 10 ảnh tế bào, 10 ảnh gỗ, 10 ảnh vỉ thuốc Matlab phiên 2015a Kit điều khiển chính: Arduino Uno R3, LCD 16x2 Nội dung thực hiện: Đề tài thực nội dung xây dựng hệ thống đếm đối tượng qua hình ảnh với đầu vào ảnh chứa đối tượng( tế bào, cây, vỉ thuốc) Kết đếm nhúng liệu điều khiển tương ứng xuống kit Arduino Nhóm thực nội dung sau: Tìm hiểu kit Arduino Cài đặt nguồn thư viện cho kit Arduino, cách kết nối Arduino với Matlab Tìm hiểu thuật tốn đánh nhãn Xây dựng q trình xử lý ảnh đầu vào Xây dựng hệ thống đếm đối tượng ảnh, lập trình ứng dụng nhúng liệu kit Arduino Đánh giá kết thực III NGÀY GIAO NHIỆM VỤ: 25/09/2017 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Duy Thảo CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iv TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Bộ Môn Điện Tử Công Nghiệp – Y Sinh Độc lập - Tự - Hạnh phúc Tp Hồ Chí Minh, ngày 15 tháng năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Phan Thành Hưng Lớp: 13141DT3A MSSV: 13141125 Họ tên sinh viên 2: Trần Văn Thạch Lớp: 13141DT3A MSSV: 13141304 Tên đề tài: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM SỐ LƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD Xác nhận Nội dung Tuần/ngày GVHD Tuần 1,2 Tìm đề tài Tuần Tìm hiểu hoạt động Arduino Matlab Tuần Cài đặt Matlab, kết nối Arduino với Matlab Tuần 5,6 Lập trình Arduino với chân I/O để nhúng liệu Tuần 7,8,9 Lập trình xây dựng chương trình xử lý ảnh đầu vào Tuần 10,11,12 Lập trình chương trình đếm đối tượng ảnh chương trình giao diện người dùng Tuần 13,14 Hiệu chỉnh toàn chương trình Tuần 15,16,17 Viết báo cáo đồ án Tuần 18 Chỉnh sửa, in đồ án GV HƯỚNG DẪN (Ký ghi rõ họ tên) v LỜI CAM ĐOAN Chúng tơi cam đoan ĐATN cơng trình nghiên cứu thân hướng dẫn Thạc sỹ Nguyễn Duy Thảo Các kết công bố ĐATN “Thiết kế thi công hệ thống đếm số lượng ảnh sử dụng kít Arduino hiển thị LCD” trung thực khơng chép hồn tồn từ cơng trình khác Người thực đề tài Phan Thành Hưng Trần Văn Thạch vi LỜI CẢM ƠN Trong trình làm đồ án tốt nghiệp, chúng em nhận nhiều ủng hộ, giúp đỡ đóng góp ý kiến bảo nhiệt tình thầy cơ, gia đình bạn bè Chúng em xin gửi lời cảm ơn chân thành đến Th.S Nguyễn Duy Thảo - Trường Đại học Sư phạm Kỹ thuật Tp.HCM tận tình hướng dẫn bảo suốt thời gian làm luận án tốt nghiệp Thầy tạo nhiều điều kiện cho lời khuyên quý báu giúp chúng em hồn thành tốt khóa luận Xin chân thành cảm ơn thầy cô giáo Trường Đại học Sư phạm Kỹ thuật Tp.HCM nói chung, thầy Bộ mơn Điện tử Cơng Nghiệp – Y Sinh nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức quý báu tạo điều kiện giúp đỡ suốt trình học tập năm học vừa qua, giúp chúng em có sở lý thuyết vững vàng Cuối cùng, chúng em xin chân thành cảm ơn gia đình bạn bè, tạo điều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em suốt trình học tập hoàn thành đồ án tốt nghiệp Chúng em xin chân thành cảm ơn! Người thực đề tài Phan Thành Hưng Trần Văn Thạch vii MỤC LỤC Trang bìa i Bảng mô tả công việc ii Nhiệm vụ đồ án iv Lịch trình v Cam đoan vi Lời cảm ơn vii Mục lục viii Liệt kê hình xi Liệt kê bảng xiii Tóm tắt xv CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu xử lý ảnh 2.2 Tổng quan Matlab 2.3 Giới thiệu lịch sử hình thành Arduino 2.4 Giới thiệu phần cứng 2.4.1 Kit Arduino Uno 2.4.2 Giới thiệu LCD 16x2 10 2.4.3 Giao tiếp I2C 11 2.5 Một số phương pháp xử lý ảnh 12 2.5.1 Xử lý điểm ảnh: 12 2.5.2 Làm trơn nhiễu lọc tuyến tính 15 2.5.3 Nhị phân hóa ngưỡng tự động 16 2.5.4 Phân vùng ảnh: 17 2.5.5 Phép toán Dilation 18 2.5.6 Phép toán Erosion 19 2.5.7 Phép toán Openning 20 2.5.8 Phép toán Closing 20 viii 2.5.9 Thuật toán đánh nhãn: 25 2.6 Các hàm xử lý Matlab 25 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 28 3.1 Giới thiệu 28 3.2 Thiết kế hệ thống 28 3.2.1 Thiết kế sơ đồ khối hệ thống 28 3.2.2 Thiết kế khối hệt thống 30 3.3 Tổng quan phần cứng 32 3.3.1 Tổng quan khối 32 3.3.2 Board Arduino Uno R3 33 3.4 Cài đặt gói hỗ trợ phần cứng cho Matlab 37 3.4.1 Kết nối Arduino với Matlab 37 3.4.2 Kiểm tra kết nối Arduino với Matlab 40 3.4.3 Kết nối LCD với I2C 40 CHƯƠNG THI CÔNG HỆ THỐNG 42 4.1 Giới thiệu 42 4.2 Thi công hệ thống 42 4.3 Lưu đồ hệ thống 43 4.3.1 Tổng quát hệ thống 43 4.3.2 Chi tiết hệ thống 43 4.4 Viết tài liệu hướng dẫn sử dụng, thao tác 47 4.4.1 Viết tài liệu hướng dẫn sử dụng 47 4.4.2 Quy trình thao tác giao diện 48 CHƯƠNG KẾT QUẢ _ NHẬN XÉT _ĐÁNH GIÁ 49 5.1 Kết 49 5.1.1 Tổng quan kết đạt 49 5.1.2 Kết thực tế 49 5.2 Nhận xét đánh giá 60 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62 6.1 Kết luận 62 6.2 Hướng phát triển 63 TÀI LIỆU THAM KHẢO 64 PHỤ LỤC 65 ix CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.11: Đếm loại thành cơng Đếm thuốc Cũng hai đối tượng việc đếm thuốc tương tự nhóm đếm nghiêng vỉ thuốc màu tối(đen, tím, xám) để việc đếm xảy xác Với đối tượng khác đếm cấp độ màu sắc khác nên cần phải chuyển ngưỡng cấp độ khác Hình 5.12: 10 ảnh đếm thuốc nhóm thực đề tài BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Kết quả: Hình 5.13: Đếm thuốc loại thành cơng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.14: Đếm thuốc đen loại thành công c Kết điều khiển ứng dụng trêm Arduino Sau trình đếm đối tượng từ chương trình q trình nhúng liệu xuống Matlab xuống kít arduino : Hiển thành thành công “DO AN TOT NGHIEP” hàng LCD HIển thị thành cơng dòng “Ket qua dem”: dòng thứ LCD Hiển thị thành cơng kết đếm LCD, kết LCD giao diện người dùng khớp với Ứng dụng hoạt động ổn định, xác đáp ứng yêu cầu ban đầu mà nhóm đặt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.15: Kết thị đếm đối tượng LCD d Kết thống kê Kết đếm với đối tượng tế bào: Thống kê kết đếm ảnh chụp cho tế bào khác sau: Số thứ tự Số tế bào có Số tế bào đếm Số tế bào đếm Tỷ lệ ảnh sai 76 75 98% 43 43 100% 44 42 95% 45 45 100% 73 67 91% Bảng 5.1.Kết đếm tế bào BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Kết đếm với đối tượng thuốc: Thống kê kết đếm ảnh chụp cho vỉ thuốc khác mà nhóm cho có độ xác cao sau: Số viên thuốc Số viên thuốc Số viên thuốc có vỉ đếm đếm sai 20 20 100% 5 100% 15 15 100% 8 100% 8 100% Số thứ tự Tỷ lệ Bảng 5.2.Kết đếm thuốc Kết đếm với đối tượng gỗ: Thống kê kết đếm ảnh chụp cho gỗ khác sau: Số có Số đếm Số đếm xe sai 58 51 87% 45 42 93% 18 16 88% 54 50 92% 33 34 97% Số thứ tự Tỷ lệ Bảng 5.3.Kết đếm 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ Đồ án nhóm thực đạt 100% mục tiêu nhóm đặt Điều khiển ứng dụng Arduino tương đối tốt, yêu cầu đặt Tuy nhiên, chưa có nhiều kinh nghiệm nên việc cài đặt giao tiếp Arduino cho Matlab lúc ban đầu gặp nhiều khó khăn làm tốn nhiều thời gian Về tỉ lệ dạng với đối tượng tế bào tỷ lệ là: 85-95% Đối với tế bào nằm rời rạc không bị chồng chéo hay đè lên cho kết cao, ngược BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ lại với tế bào dính, che lấp, chồng chéo lên nên việc đếm xảy sai số tế bào thấp Còn tỉ lệ đếm tỉ lệ nằm khoảng 85-95% Việc sai số đếm phụ thuộc vào viêc xếp dính liền hay có có màu sắc sáng tối khơng rõ ràng nên việc chuyển sang nhị phân hay chọn ngưỡng đếm xảy sai số đối tượng ảnh Đối với đối tượng đếm thuốc điều kiện màu vỉ thuốc, màu thuốc hay vật liệu làm vỉ thuốc phong phú nhiều chủng loại nên việc xử lý ảnh đầu vào có kết khác Vì mà đem lại kết có tỷ lệ khác loại thuốc khác nên nhóm chọn lựa đối tượng vỉ thuốc có màu tối, loại thuốc màu tối để mang lại kết phép đếm tương đối xác Kết đếm số lượng nhiều hạn chế, đối tượng rộng ảnh có cấp độ sáng, màu sắc khác nên ảnh hưởng đến kết đề tài BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau tim hiểu thực đề tài : “ Đếm đối tượng ảnh”, nhóm thực yêu cầu ban đầu Trong trình thực đề tài tìm hiểu lý thuyết cac phương pháp bước tiền xử lý ảnh ban đầu phương pháp đánh nhãn đếm đối tượng thu kết ban đầu sau: Giới thiệu chi tiết phương pháp bước tiền xử lý ảnh Áp dụng giải thuật bước tiền xử lý ảnh ban đầu Giới thệu thuật toán đánh nhãn đối tượng ảnh Áp dụng giải thuật phương pháp đánh nhãn đối tượng ảnh Nắm phương pháp trình đếm đối tượng ảnh Xây dựng thành cơng chương trình dếm đối tượng ảnh Bên cạnh nhóm tiếp thu kết tương đối đếm đối tượng ảnh ứng dụng khác kít Arduino phần mềm Matlab Về kết quả, chương trình đạt kết tương đối đếm đối tượng Tuy nhiên nhiều hạn chế phụ thuộc vào điều kiện ánh sáng, màu đối tượng đếm, thời gian đếm chậm 6.2 HƯỚNG PHÁT TRIỂN Trong phạm vi đồ án nhóm trình bày thành phần lập trình Matlab Tuy nhiên việc mở rộng mơ hình đếm đối tượng để điều khiển ứng dụng thực tế cần có thời gian nghiên cứu cải tiến Nhóm nghiên cứu nhận thấy phát triển thêm tính sau: Nâng cao tốc độ độ xác đếm đối tương ảnh Có thể đếm đối tượng nào, với kích thước ảnh vào Đếm tất đối tượng mà không phụ thuôc vào màu sắc đối tượng Đếm đối tượng dính, chồng chất có độ xác cao BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 62 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Phân biệt chọn lọc đối tượng cần đếm trường hợp có nhiều đối tượng khác Ứng dụng thống đếm đối tượng ảnh vào thực tiễn như: kiểm soát số lượng đối tượng xí nghiệp, nhà máy, trường học… BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 TÀI LIỀU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Thanh Hải, Giáo trình Xử lý ảnh, Nhà xuất ĐH Quốc Gia TP HCM, 2014 [2] Agus Kurniawan, Arduino Programming using Matlab, 1st Edition, 2015 [3] Hans-Petter Halvorsen, Introduction to ARDUINO, 2008 [4] Ross L.Spencer, Introduction to Matlab, 2000 [5] IEEE Computer Society Executive Briefings Document Image Analysis Lawrence O’Gorman Rangachar Kasturi ISBN 0-8186-7802-X Library of Congress Number 9717283 1997 [6] J.R.Parker, Algorithms for Image Processing and Computer Vision, 2st Edition, 2010 [7] Varun Sharma, Object Counting using MATLAB,2014 [8] Kholoud Alotaibi, Sickle Blood Cell Dedection Based on Image Segmentation, 2016 Trang web tham khảo [9] ARDUINO®, ARDUINO UNO REV3, https://store.arduino.cc/usa/arduino-uno-rev3 [10] Nhận dạng đối tượng viên thuốc tròn, https://text.123doc.org/document/4405702tieu-luan-nhan-dang-doi-tuong-vien-thuoc-hinh-tron.htm [11] Đếm số đối tượng video dùng FPGA, http://doc.edu.vn/tai-lieu/luan-van-demso-doi-tuong-tren-video-dung-fpga-52196/ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 PHỤ LỤC PHỤ LỤC CODE CHUONG TRÌNH ĐẾM TẾ BÀO % CHON ANH DAU VAO TRONG GIAO DIEN [filename path] = uigetfile({'*.jpg';'*.jpeg';'*.png';'*.bmp';'*.tif';'*.*';},'File Selector'); input=strcat(path,filename); global b b= imread(input); imshow(b,'Parent',handles.axes1) guidata(hObject,handles); %% CHUONG TRINH XU LY ANH DAU VAO global b c= rgb2gray (b); %%CHUYEN ANH MAU SANG ANH XAM level=graythresh(c); %% CHON NGUONG TU DONG d=im2bw(c, level); %%CHUYEN ANH NHI PHAN d1=imfill (~d,'holes'); %% LAP DAY LO HAY VUNG TRONG d3=bwareaopen (d1, 10); imshow(d3,'Parent',handles.axes3); [L, n] = bwlabel(d3); %% TIM TONG CAC DOI TUONG NHAN labelImageBWCC = bwconncomp(d3,4); image s=regionprops(L,'Centroid'); %% CHON TAM CAC DOI TUONG NHAN TIM DUOC %% DANH SO NHAN DOI TUONG THEO TAM TIM DUOC hold on for n = 1:numel(s) text(s(n).Centroid(1), s(n).Centroid(2), num2str(n), 'Color', 'r', 'HorizontalAlignment', 'center') end set(handles.text3,'String',n); i=n; guidata(hObject,handles); hold off %% NHUNG KET QUA XUONG ARDUINO global arduino BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65 PHỤ LỤC delete(instrfind('Port','COM4')) arduino = serial('COM4','BaudRate',9600); fopen(arduino); while i fprintf(arduino,'%s', char(i)) pause(0.5) end fclose(arduino) %% NGAT CHUONG TRINH ARDUINO global arduino fclose(arduino) delete(arduino) CODE CHƯƠNG TRÌNH ĐẾM CÂY % CHON ANH DAU VAO TRONG GIAO DIEN [filename path] = uigetfile({'*.jpg';'*.jpeg';'*.png';'*.bmp';'*.tif';'*.*';},'File Selector'); input=strcat(path,filename); global b b= imread(input); imshow(b,'Parent',handles.axes1) guidata(hObject,handles); %% CHUONG TRINH XU LY ANH DAU VAO global b c = b(:, :, 2); %% TACH ANH MAU SANG ANH THANH PHAN MAU XANH LA m=medfilt2 (c); %% LOC TRUNG VI bw=im2bw(m,graythresh(m)); %%CHUYEN ANH NHI PHAN VOI NGUONG TU DONG bw1=imfill(bw,'holes'); %% LAP DAY LO HAY VUNG TRONG % creating a flat, disk-shaped structuring element erode=imerode(bw1,strel('disk',17)); %% XOI MON DOI TUONG VOI SIZE DIA 17 imshow(erode,'Parent',handles.axes5); guidata(hObject,handles); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66 PHỤ LỤC [L, n] = bwlabel(erode); labelImageBWCC = bwconncomp(erode,4); %Find connected components in binary image s=regionprops(L,'Centroid'); %% TIM TAM CAC NHAN DOI TUONG TIM DUOC % DANH SO NHAN THEO TAM DOI TUONG TIM DUOC hold on for n = 1:numel(s) text(s(n).Centroid(1), s(n).Centroid(2), num2str(n), 'Color', 'r', 'HorizontalAlignment', 'center') end set(handles.text3,'String',n); i=n; guidata(hObject,handles); hold off %% NHUNG KET QUA XUONG ARDUIBNO global arduino delete(instrfind('Port','COM4')) arduino = serial('COM4','BaudRate',9600); fopen(arduino); while i fprintf(arduino,'%s', char(i)) pause(0.5) end fclose(arduino); %% NGAT CHUONG TRINH ARDUINO global arduino fclose(arduino) delete(arduino) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 PHỤ LỤC CODE CHƯƠNG TRÌNH ĐẾM THUỐC %% CHON ANH DAU VAO CHO GIAO DIEN [filename path] = uigetfile({'*.jpg';'*.jpeg';'*.png';'*.bmp';'*.tif';'*.*';},'File Selector'); input=strcat(path,filename); global b b= imread(input); imshow(b,'Parent',handles.axes1) guidata(hObject,handles); %% CHUONG TRINH XU LY ANH DAU VAO global b c = rgb2gray(b); %% ANH MAU SANG ANH XAM d= im2bw(c,graythresh(c));%% CHUYEN SANG ANH NHI PHAN VOI NGUONG TU DONG e=medfilt2(~d); %% LOC TRUNG VI f=imopen(e,strel('disk',16)); %% MO DOI TUONG VOI KICH CO DIA 16 imshow(f,'Parent',handles.axes2); [L, n] = bwlabel(f); labelImageBWCC = bwconncomp(f,4); %Find connected components in binary image s=regionprops(L,'Centroid'); % TIM TAM CUA CAC NHAN DOI TUONG TIM DUOC %% DANH SO NHAN DOI TUONG THEO TAM TIM DUOC hold on for n = 1:numel(s) text(s(n).Centroid(1), s(n).Centroid(2), num2str(n), 'Color', 'r', 'HorizontalAlignment', 'center') end set(handles.text4,'String',n); i=n; guidata(hObject,handles); hold off %% NHUNG KET QUA RA ARDUINO global arduino BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 PHỤ LỤC delete(instrfind('Port','COM4')) arduino = serial('COM4','BaudRate',9600); fopen(arduino); while i fprintf(arduino,'%s', char(i)) pause(0.5) end fclose(arduino); %%NGAT CHUONG TRINH ARDUINO global arduino fclose(arduino) delete(arduino) CODE ARDUINO LCD #include ; int matlabData; #include ; LiquidCrystal_I2C lcd(0x27,16,2); void setup(){ Serial.begin(9600); lcd.init(); lcd.backlight(); lcd.display(); } void loop() { if(Serial.available()) { matlabData=Serial.read(); lcd.setCursor(0,0); lcd.print("DO AN TOT NGHIEP"); lcd.setCursor(0, 1); lcd.print("Ket qua dem:"); lcd.setCursor(13,1); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69 PHỤ LỤC lcd.print(matlabData); delay(500); } delay(500); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 70 ... tài: Thi t kế thi công hệ thống đếm đối tượng ảnh sử dụng kit Arduino hiển thị LCD nghiên cứu xây dựng phương pháp xử lý ảnh đầu vào, phương pháp hinh thái học đếm đối tượng ảnh để điều khiển... TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THI T KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM ĐỐI TƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ... hệ: 2013 Lớp: 13141DT3A I TÊN ĐỀ TÀI: THI T KẾ VÀ THI CÔNG HỆ THỐNG ĐẾM SỐ LƯỢNG TRONG ẢNH SỬ DỤNG KÍT ARDUINO HIỂN THỊ TRÊN LCD II NHIỆM VỤ Các số liệu ban đầu: Bộ ảnh đếm: 30 ảnh gồm 10 ảnh