Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
2,94 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG NGHIÊN CỨU VÀ XÂY DỰNG MODULE XỬ LÝ ẢNH NHẬN DẠNG MÀU SẮC CỦA VẬT THỂ S K C 0 9 MÃ SỐ: T2010 - 35 S KC 0 Tp Hồ Chí Minh, 2010 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠ KHÍ CHẾ TẠO MÁY BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG NGHIÊN CỨU VÀ XÂY DỰNG MODULE XỬ LÝ ẢNH NHẬN DẠNG MÀU SẮC CỦA VẬT THỂ Mã số: T2010-35 Chủ nhiệm đề tài: ThS Trần Minh Thuận TP HCM, 10/2010 MỤC LỤC Phần 1: Đặt vấn đề I Đối tượng nghiên cứu .1 II Tình hình nghiên cứu nước III Những vấn đề tồn .2 Phần 2: Giải vấn đề .3 I Mục đích đề tài .3 II Phương pháp nghiên cứu .3 III Nội dung .3 3.1 Cơ sở nghiên cứu .3 3.2 Phương pháp thực 12 IV Kết đạt 16 4.1 Tính khoa học 17 4.2 Khả ứng dụng vào thực tế .18 4.3 Hiệu kinh tế - xã hội 18 Phần 3: Kết luận 19 I Kết luận .19 II Đề nghị 19 Tài liệu tham khảo 20 Phụ lục: Mã lệnh tóm tắt .21 i DANH MỤC HÌNH VẼ Hình 1.1 - Camera VS724 Siemens Hình 2.1 - Sơ đồ khối trình xử lý ảnh Hình 2.2 - Khơng gian màu RGB .5 Hình 2.3 - Khơng gian màu HSV Hình 2.4 - Hệ thống camera-computer .6 Hình 2.5 - Dãy quang phổ mà thị giác người nhìn thấy Hình 2.6 - Webcam dùng lĩnh vực dân dụng Hình 2.7 - Netbook Acer Hình 2.8 - Bus mở rộng PCI máy tính .9 Hình 2.9 - Chuẩn kết nối USB 10 Hình 2.10 - FireWire (IEEE-1394) 10 Hình 2.11 - Camera dùng giao tiếp Ethernet 11 Hình 2.12 - Cơng cụ lập trình Microsoft Visual Studio 2008 12 Hình 2.13 – Cấu trúc phần cứng .12 Hình 2.14 – Lưu đồ hoạt động chương trình xử lý ảnh 14 Hình 2.15 – Lưu đồ giải thuật xử lý ảnh 15 Hình 2.16 – Kết hệ thống phần cứng .16 Hình 2.17 – Kết chương trình phần mềm 17 ii DANH MỤC BẢNG Bảng 2.1 - Thông số kỹ thuật Creative Optia 13 Bảng 2.2 - Thông số kỹ thuật netbook Acer Aspire One: 13 iii TÓM TẮT ĐỀ TÀI Mục đích đề tài nghiên cứu tạo hệ thống hoàn chỉnh (phần cứng phần mềm) có khả chụp ảnh vật để phân tích vật ảnh màu danh sách màu chuẩn Danh sách màu chuẩn thay đổi động Hệ thống ứng dụng cho đội robot tham gia giải đấu Robocon Về phần cứng, netbook webcam sử dụng làm hai thành phần Về phần mềm, chương trình chạy Windows tạo để thực chức xử lý ảnh, phân tích màu sắc Thuật giải phân tích màu chủ yếu dựa kiến thức khơng gian màu HSV Kết thực nghiệm chứng tỏ hệ thống hoạt động với yêu cầu đặt dễ dàng triển khai sử dụng thực tế, phần cứng gọn nhẹ, phần mềm ổn định, xác iv PHẦN ĐẶT VẤN ĐỀ I Đối tượng nghiên cứu Thị giác máy (Machine vision) ứng dụng thị giác máy tính (Computer vision) vào cộng nghiệp sống Nhưng ngược lại, thị giác máy tính qui tắc chung để máy tính nhìn Thị giác máy, qui tắc kỹ thuật, liên quan tới thiết bị số vào/ra mạng máy tính để điều khiển thiết bị sản xuất khác chẳng hạn robot, cánh tay máy Thị giác máy trường phụ kỹ thuật mà có liên quan tới khoa học máy tính, quang học, kỹ thuật chế tạo máy, tự động hóa Cùng với xu phát triển công nghệ thông tin mạnh mẽ, xu phát triển hệ thống hoạt động sở nhận dạng kỹ thuật xử lý ảnh Ảnh nhiều thơng tin màu sắc, hình dáng, kích thước…Với cơng cụ xử lý ảnh cho khả nhận biết xác vật dựa đặt tính trực quan bên ngồi đối tượng Thực tế xử lý ảnh ứng dụng rộng rãi lĩnh vực sống Trong số ứng dụng thị giác cho robot tự hành mà robot tham giam thi Robocon tập trung phát triển Từ đề tài “NGHIÊN CỨU VÀ XÂY DỰNG MODULE XỬ LÝ ẢNH NHẬN DẠNG MÀU SẮC CỦA VẬT THỂ” thực nhằm ứng dụng kết cho đội robot tham gia giải Robocon thời gian tới II Tình hình nghiên cứu ngồi nước Trong thời gian gian gần dây xử lý ảnh có bước phát triển lớn Các hãng chuyên xử lý ảnh không ngừng đư sản phẩm để đáp ứng nhu cầu khách hàng Các công cụ ngày đại, với tốc độ xử lý cao, nhiều cơng cụ xử lý có khả kết nối với thiết bị ngoại vi khác Trong mảng xử lý không nhắc tới hai phần mềm xử lý ảnh tốt Spectation Siemen Intellect Cognex Hình 1.1 - Camera VS724 Siemens với chức tốc độ xử lý ảnh cao đắt tiền Thị giác máy chưa ứng dụng cho đội robocon trường ĐH Sư Phạm Kỹ Thuật Tp HCM Điều làm giảm sức cạnh tranh trường thi robocon nước quốc tế Trong đó, thực tế cho thấy vượt trội đội robot có ứng dụng thị giác máy thi đấu III Những vấn đề tồn Với chủ đề thi Robocon tới, việc trang bị cho robot tự hành có khả “nhìn” thị giác cần thiết, giúp cho robot hồn thành nhiệm vụ nhanh xác Yêu cầu đặt phải có module có chức nhận dạng màu sắc, mà đội robotcon trường áp dụng để trang bị khả thị giác cho robot tham dự thi robocon toàn quốc 2010 PHẦN GIẢI QUYẾT VẤN ĐỀ I Mục đích đề tài Tạo hệ thống (phần cứng phần mềm) có chức nhận biết màu sắc đối tượng chụp camera Hệ thống cho phép thay đổi tiêu chuẩn màu sắc phù hợp với ứng dụng, ngữ cảnh cụ thể Hệ thống cịn phân biệt đối tượng có màu sắc khác dựa phương pháp đánh giá đặc tính màu Phần cứng phải nhỏ gọn, linh hoạt Phần mềm xử lý có khả chạy PC nhỏ gọn netbook, PC/104 mà PC gắn robot tự hành II Phương pháp nghiên cứu - Bước 1: Xác định yêu cầu nghiên cứu Bước 2: Xác định sở khoa học (các công thức, thuật giải, phương pháp) dựa việc tổng hợp tài liệu chuyên môn có liên quan Bước 3: Tìm hiều phần cứng cơng cụ phần mềm phù hợp với mục đích nghiên cứu kinh phí thực Bước 4: Triển khai xây dựng hệ thống phần cứng viết phần mềm phần mềm Bước 5: Kiểm tra thử nghiệm thực tế chỉnh sửa Bước 6: Thử nghiệm, kết hợp với robot Bước Hồn thiện, đóng gói sản phẩm III Nội dung 3.1 Cơ sở nghiên cứu 3.1.1 Xử lý ảnh Xử lý ảnh trình chụp ảnh, phân tích nhận dạng ảnh đưa tín hiệu điều khiển hợp lý Thiết bị thu nhận (chụp ảnh) Scanner, camera, webcam,….Thực chất q trình phân tích nhận dạng ảnh bao gồm nhiều cơng đoạn nhỏ hình hình dung q trình xử lý ảnh thông qua sơ đồ khối sau Hệ định Thu nhận ảnh (Scanner, camera, sensor, webcam) Tiền xử lý Trích chọn đặc điểm Đối sánh rut kết luận Hậu xử lý Hình 2.1 - Sơ đồ khối trình xử lý ảnh Lưu giữ 3.1.2 Thu nhận ảnh Thiết bị thu nhận ảnh camera, scanner, webcam,… Các thiết bị thu nhận ảnh cho ảnh trắng đen B/W (Black and White), ảnh xám ảnh màu Với ảnh B/W mức màu z Với ảnh đa cấp xám, mức xám biến thiên từ đến 255 Ảnh màu, điểm ảnh lưu trữ bytes ta có 8x3 = 24 màu (cỡ 16, triệu màu) Một điểm ảnh màu thể giá trị tương ứng với thành phần màu đỏ (Red), lục (Green) lam (Blue) Nhìn chung, hệ thống thu nhận ảnh thực trình: Biến đổi lượng quang học thành lượng điện Tổng hợp lượng điện thành ảnh số 3.1.3 Nâng cao chất lượng ảnh Một kỹ thuật quan trọng xử lý ảnh nâng cao chất lượng ảnh biểu đồ tần suất sáng Histogram Biểu đồ tần suất mức xám g ảnh I số điểm ảnh có giá trị g ảnh I, ký hiệu h(g) Kỹ thuật tách ngưỡng tự động: Ngưỡng θ kỹ thuật tách ngưỡng thường cho người sử dụng Kỹ thuật tách ngưỡng tự động nhằm tìm ngưỡng θ cách tự động dựa vào histogram theo nguyên lý vật lý vật thể tách làm phần tổng độ lệnh phần tối thiểu Giả sử, ta có ảnh I ~ kích thước m × n G ~ số mức xám ảnh kể khuyết thiếu t(g) ~ số điểm ảnh có mức xám ≤ g m( g ) t(g) Hàm f: g f (g) g i.h(i ) ~ mơmen qn tính TB có mức xám g i f(g) t(g) m( g ) m(G 1) m n t(g) Tìm θ cho: f(g) = max {f(g)} 0≤g≤G-1 3.1.4 Không gian màu Không gian màu RGB (Red - Green - Blue) Không gian màu RGB mô tả màu sắc thành phần Red (đỏ)- Green (xanh lục) Blue (xanh lam) Không gian xem khối lập phương chiều với màu red trục x, màu Green truc y, màu Blue trục z Mỗi màu không gian xác định thành phần R, G, B Ứng với tổ hợp khác màu cho ta màu Ethernet kết nối I/O theo chuẩn IEEE 802.3, ứng dụng cho mạng LAN (Local Area Network), sử dụng cặp dây xoắn kép, cáp đồng trục, cáo quang để truyền liệu thiết bị giao tiếp Ethernet Dữ liệu truyền mạng Ethernet đóng gói gửi đến thiết bị tiếp nhận thơng qua địa IP Camera sử dụng giao tiếp Ethernet Ethernet có đặc trưng sau: Khả kết nối số lượng thiết bị ngoại vi rộng lớn Khoảng cách truyền tin thiết bị sử dụng cáp xoắn lên đến 500 mét nối trực tiếp, không hạn chế dùng hub Tốc độ truyền liệu 10Mbit/s đến Gbit/s (Gigabit Ethernet) Thiết bị truy xuất qua mạng internet Hình 2.11 - Camera dùng giao tiếp Ethernet Phần mềm Camera kết nối với máy tính kênh truyền thơng Đó yếu tố phần cứng cần thiết trình thu nhận ảnh từ giới bên ngồi vào nhớ máy tính Tuy nhiên yếu tố phần cứng hoạt động phải có thêm yếu tố phần mềm, gồm có: Phần mềm cấp cao: phần mềm ứng dụng (Application) Phần mềm cấp thấp: trình điều khiển thiết bị (Driver) Phần mềm ứng dụng camera-computer phần mềm cấp độ người sử dung, thực hay nhiều chức liên quan đến hình ảnh video xử lý ảnh, biên tập video, lưu trữ… 11 Hình 2.12 - Cơng cụ lập trình Microsoft Visual Studio 2008 hỗ trợ viết ứng dụng Windows 3.2 Phương pháp thực Dựa vào sở nghiên cứu trên, giải pháp cho hệ thống gồm có phần cứng phần mềm mô tả sau: Cấu trúc hệ thống phần cứng Camera thu nhận ảnh USB Máy tính xử lý ảnh Phần mềm xử lý ảnh Giao tiếp RS-232 Hình 2.13 – Cấu trúc phần cứng gồm có phần chính: webcam netbook - Camera thu nhận ảnh: sử dụng webcam Optia chất lượng cao hãng Creative để màu sắc phản ảnh cách xác, hình ảnh sau chụp webcam truyền tới máy tính cổng USB 12 Bảng 2.1 - Thơng số kỹ thuật Creative Optia: Bộ cảm ứng Cảm ứng CCD Thấu kính Thấu kính xác (Thấu kính thủy tinh chất lượng cao) Độ phân giải hình ảnh tĩnh 1.3 Megapixel, 1280x960 (Software enhanced) Độ phân giải Video 640x480@30fps Tiêu điểm Vòng điều chỉnh tiêu điểm tay Kết nối USB 2.0 tốc độ cao(tương thích ngược với USB 1.1) - Máy tính xử lý ảnh: nhận liệu ảnh số từ camera, xử lý ảnh, sau xuất kết xử lý cổng COM để robot xử lý Dòng máy netbook Acer Aspire One chọn kích thước gọn trọng lượng nhẹ, CPU Atom hoạt động xung nhịp 1,6GHz đáp ứng đòi hỏi tính tốn phần mềm xử lý ảnh hệ thống Ngoài ra, yếu tố để lựa chọn netbook sử dụng đĩa cứng SSD làm nhớ trong, thích hợp netbook gắn vào robot có va chạm học mạnh robot tham gia thi đấu giải robocon Bảng 2.2 - Thông số kỹ thuật netbook Acer Aspire One: Hãng sản xuất Acer Loại CPU Intel Atom N270 Tốc độ CPU 1.6 GHz (533 MHz FSB) CPU Cache 512 KB L2 Cache Memory Type DDR2 Bus 533MHz Dung lượng nhớ (RAM) 1GB Loại ổ cứng , dung lượng ổ cứng SSD 8GB VGA Intel GMA 950 Độ lớn hình 8.9 inch Độ phân giải hình WSVGA (1024x600) Kết nối mạng không dây WLAN 802.11b/g Hệ điều hành (OS) Windows XP Home Pin (Battery) Cell Thời lượng sử dụng pin Trọng lượng (g) 998 Kích thước (mm) 249 x 170 x 27.9 Chương trình phần mềm xử lý ảnh Chạy máy tính netbook Có nhiệm vụ nhận lệnh kích hoạt u cầu xử lý từ robot để lệnh chụp ảnh từ webcam Sau đó, ảnh xử lý, sàn lọc nhận dạng màu sắc Kết truyền cho robot giao thức RS-232 13 Bắt đầu Nhận lệnh yêu cầu xử lý màu sắc từ robot Chụp ảnh tĩnh từ webcam lấy ảnh nhớ RAM máy tính giao cổng USB Xử lý ảnh, lọc màu, nhận dạng màu Xuất kết cổng COM máy tính Hình 2.14 – Lưu đồ hoạt động chương trình xử lý ảnh Nhận lệnh yêu cầu xử lý màu sắc từ robot: chương trình trạng thái chờ, liệu nhận vào từ cổng COM trùng khớp với tín hiệu u cầu xử ly chương trình bắt đầu chạy chức chụp ảnh Chụp ảnh tĩnh từ webcam lấy ảnh nhớ RAM máy tính giao cổng USB: thơng qua activeX VideoVina chương trình yêu cầu hệ điều hành Windows điều khiển webcam (thông qua driver) để chụp ảnh đưa ảnh vào nhớ RAM máy tính Dữ liệu ảnh chiếm dung lượng cao (~900KB/1 ảnh) nên việc truyền từ webcam máy tính giao thức USB 2.0 tốc độ cao có thời gian trễ không đáng kể Xử lý ảnh, lọc màu, nhận dạng màu: bước này, loạt thao tác xử lý ảnh chương trình thực Đây bước xử lý chiếm nhiều tài nguyên xử lý Hay nói cách khác, bước tốn nhiều thời gian Nếu thuật giải hợp lý tối ưu thời gian đáp ứng tồn hệ thống thấp, robot có khả “nhìn” nhanh Việc nhận dạng màu sắc dựa không gian màu HSV Lưu đồ giải thuật cho bước mô tả sau: 14 Chuyển đổi ảnh sang không gian màu HSV Lọc màu dựa danh sách màu chuẩn Loại bỏ điểm ảnh có độ bão hịa khơng phù hợp Thống kê số lượng điểm ảnh trùng với danh sách màu chuẩn Kết luận màu sắc ảnh dựa bảng thống kê Hiển thị kết xử lý lên hình Hình 2.15 – Lưu đồ giải thuật xử lý ảnh Chuyển đổi ảnh sang không gian màu HSV: ảnh số nhận từ camera không gian màu RGB Một chuyển đổi từ RGB sang không gian màu HSV giúp cho việc phân tích màu sắc dễ dàng xác Lọc màu dựa danh sách màu chuẩn: danh sách màu chuẩn cấu hình cho robot Trong bước này, giá trị màu pixel ảnh mặt phẳng H so sánh để giữ lại nằm danh sách màu chuẩn Loại bỏ điểm ảnh có độ bão hịa khơng phù hợp: độ bão hòa ánh sáng trắng điểm ảnh thể mặt phẳng S Do đó, cần so sánh cận cận để loại bỏ điểm ảnh có độ bão hịa khơng phù hợp (tùy theo điều kiện ánh sáng cụ thể) Thống kê số lượng điểm ảnh trùng với danh sách màu chuẩn: sau lọc theo danh sách màu chuẩn độ bão hòa ánh sáng trắng, 15 điểm ảnh lại phân loại theo nhóm màu chuẩn đếm số lượng Kết luận màu sắc ảnh dựa bảng thống kê: việc kết luận đơn giản lấy số lượng điểm ảnh nhóm màu có số lượng nhiều Hay nói cách khác, số lượng nhiều kết luận màu ảnh Hiển thị kết xử lý lên hình: người điều khiển theo dõi kết trình xử lý ảnh Xuất kết cổng COM máy tính: sau việc kết luận màu bước ảnh hoàn tất, ký tự tương ứng với thông tin màu sắc xuất cổng COM theo giao thức RS-232 để thơng báo cho robot Hồn tất chu trình nhận lệnh thực lệnh IV Kết đạt Hệ thống phần cứng: gồm có webcam Creative Optia máy tính netbook Acer Aspire One A110 Kết nối hình sau: Hình 2.16 – Kết hệ thống phần cứng Phần mềm xử lý ảnh: ứng dụng viết công cụ Microsoft Visual Studio 2008 Chạy tất hệ điều hành có cài đặt Microsoft Framework NET 3.5 trở lên Giao diện tổng quát sau: 16 Hình 2.17 – Kết chương trình phần mềm Giải thích: Danh sách màu chuẩn để xử lý sàn lọc Điều chỉnh thơng số lọc màu độ bão hịa ánh sáng trắng Tùy chọn phương cách kích hoạt chu trình xử lý Có thể chọn định thời tín hiệu yêu cầu xử lý robot thông qua cổng COM1 Thông báo kết luận màu sắc ảnh tùy chọn xuất kết luận cổng COM1 Hiển thị hình ảnh gốc thu từ webcam Hiển thị hình ảnh kết q trình xử lý ảnh 4.1 Tính khoa học Hoàn thành nguyên lý hệ thống nhận dạng phân tích màu sắc sử dụng webcam máy tính xử lý netbook 17 Làm sở để phát triển hệ thống nhận dạng phân tích màu sắc hệ 4.2 Khả ứng dụng vào thực tế Kết áp dụng cho đội robot tham gia thi robocon tới Đối với phần cứng: phổ biến, giá vừa phải, dễ sử dụng, dễ triễn khai, dễ sửa chữa Có thể thay nhiều loại thiết bị tương đương Về phần mềm: linh hoạt cho phép thay đổi nhiều thông số quan trọng hoạt động, danh sách màu chuẩn, sai số lọc màu… Thuật giải chúng minh tính đắn nên viết lại cơng cụ lập trình khác Rộng hơn, ứng dụng phương pháp cho ngành công nghiệp cần hệ thống phân tích sản phẩm dựa màu sắc 4.3 Hiệu kinh tế - xã hội Nâng cao khả thơng minh robot tham gia robocon Góp phần vào đại hóa cơng nghiệp (khâu kiểm phẩm) 18 PHẦN KẾT LUẬN I Kết luận Hệ thống có khả phân tích màu sắc với bảng màu tùy ý Tùy biến điều khiển linh hoạt với môi trường cụ thể Tốc độ đáp ứng 1s, thỏa mãn yêu cầu cho robot tham gia robocon II Đề nghị Để làm cho hệ thống hoạt động tốt hơn, xác cần phải cải tiến thêm vấn đề sau đây: Thu nhận ảnh: sử dụng camera có cảm ứng nhạy màu chất lượng cao; kết nối khơng dây để tăng tính động Máy tính xử lý: thay thế hệ máy công nghệ để có kích thước nhỏ tốc độ xử lý nhanh Trong ứng dụng cơng nghiệp sử dụng máy tính PC/104 Phần mềm xử lý ảnh: cải tiến tốc độ cách sử dụng thư viện lập trình chuyên biệt cho xử lý ảnh OpenCV, Intel IPP… 19 TÀI LIỆU THAM KHẢO [1] Dwayne Phillips, Image Processing in C, R&D Publications, 2000 [2] Gonzalez and Woods, Digital Image Processing, Prentice-Hall, 2002 [3] Intel Corporation, Open Source Computer Vision Library, Intel Corporation, 2008 [4] Thomas Braunl, S Feyer, W Rapt, M Reinhardt, Parallel Image Processing, Springer, 2000 20 PHỤ LỤC MÃ LỆNH TÓM TẮT private:System::Void btnCapture_Click(System::Object^ sender,System::EventArgs^ { static bool stop=false; stop=!stop; if(stop) { btnCapture->Text=L"&Ngừng"; e) if(rbtTimer->Checked) timer1->Start(); else serialPort1->Open(); } else { btnCapture->Text=L"&Bắt đầu"; if(rbtTimer->Checked) timer1->Stop(); else serialPort1->Close(); } rbtCom->Enabled=!stop; rbtTimer->Enabled=!stop; } private: System::Void Form1_Load(System::Object^ vid->VideoDeviceIndex=0; vid->VideoInputIndex=0; vid->Connected=true; vid->Preview=true; sender, System::EventArgs^ e) { colorlist = gcnew array(0); pixel=gcnew array(0); } private: System::Void Form1_FormClosing(System::Object^ System::Windows::Forms::FormClosingEventArgs^ e) { vid->Connected=false; serialPort1->Close(); sender, } void Filter(Image^ img, array^ color, float colorError, float saturation) { Color c; int gray; bool out; Bitmap^ bmp=(Bitmap^) img; for(int ii=0;iiLength;ii++) pixel[ii]=0; for(int i=0;iWidth;i++) for(int j=0;jHeight;j++) { c=bmp->GetPixel(i,j); 21 gray = (int)((c.R * 3) + (c.G * 59) + (c.B * 11)); if(c.GetSaturation()SetPixel(i,j,c.FromArgb(gray,gray,gray)); } else { out=true; for(int k=0;out && kLength;k++) if(Math::Abs(c.GetHue()color[k].GetHue()) SetPixel(i,j,color[k]); } if(out) bmp>SetPixel(i,j,c.FromArgb(gray,gray,gray)); } } if(pixel->Length>0) { int index=0; for(int ii=1;iiLength;ii++) { if(pixel[index]1000) { lblColor->BackColor=color[index]; if(chkOut->Checked) serialPort1->Write(gcnew array{index},0,1); } else { lblColor->BackColor=Color::Transparent; if(chkOut->Checked) serialPort1->Write(gcnew array{99},0,1); } } else { lblColor->BackColor=Color::Transparent; if(chkOut->Checked) serialPort1->Write(gcnew array{99},0,1); } } private: System::Void barError_Scroll(System::Object^ sender, System::EventArgs^ e) { lblError->Text=barError->Value.ToString() + "%"; } private: System::Void barSat_Scroll(System::Object^ { 22 sender, System::EventArgs^ e) lblSat->Text=barSat->Value.ToString(); } void ProcessImage() { pic->Image=vid->GrabFrame(); Filter(pic->Image,colorlist,(float)(barError>Value)/2,float(100 - barSat->Value)/100); } private: System::Void timer1_Tick(System::Object^ timer1->Stop(); sender, System::EventArgs^ e) { ProcessImage(); timer1->Start(); } private: System::Void chkRed_CheckedChanged(System::Object^ System::EventArgs^ e) { UpdateColorList(); } private: System::Void groupBox1_Enter(System::Object^ e) { UpdateColorList(); } sender, sender, System::EventArgs^ private: System::Void chkGreen_CheckedChanged(System::Object^ System::EventArgs^ e) { UpdateColorList(); } private: System::Void chkBlue_CheckedChanged(System::Object^ System::EventArgs^ e) { UpdateColorList(); sender, sender, } void UpdateColorList() { int count=0; if(chkRed->Checked) count++; if(chkGreen->Checked) count++; if(chkBlue->Checked) count++; colorlist=gcnew array(count); pixel=gcnew array(count); count=0; if(chkRed->Checked) colorlist[count++] = label1->BackColor; if(chkGreen->Checked) colorlist[count++] = label3->BackColor; if(chkBlue->Checked) colorlist[count++] = label4->BackColor; } 23 private: System::Void đổiMàuToolStripMenuItem_Click(System::Object^ System::EventArgs^ e) { colorDialog1->ShowDialog(); label1->BackColor=colorDialog1->Color; UpdateColorList(); } sender, private: System::Void toolStripMenuItem1_Click(System::Object^ System::EventArgs^ e) { colorDialog1->ShowDialog(); label3->BackColor=colorDialog1->Color; UpdateColorList(); } sender, private: System::Void toolStripMenuItem2_Click(System::Object^ System::EventArgs^ e) { colorDialog1->ShowDialog(); label4->BackColor=colorDialog1->Color; UpdateColorList(); } sender, private: System::Void serialPort1_DataReceived(System::Object^ System::IO::Ports::SerialDataReceivedEventArgs^ e) { ProcessImage(); } sender, private: System::Void button1_Click(System::Object^ { this->Close(); } 24 sender, System::EventArgs^ e)