Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,74 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI o0o -NGUYỄN ĐỨC THI N ỨNG DỤNG XỬ LÝ ẢNH TRONG ĐO KÍCH THƯỚC LUẬN VĂN THẠC SỸ KHOA HỌC Người hướng dẫn khoa học : PGS.TSKH TRẦN HOÀI LINH HÀ NỘI - 2010 Mở đầu MỤC LỤC MỤC LỤC .1 Danh mục hình vẽ MỞ ĐẦU .5 CHƯƠNG 1: TÌM HIỂU VỀ CÁC HỆ THỐNG THU THẬP ẢNH SỐ CỦA ĐỐI TƯỢNG TỪ KÍNH HIỂN VI 1.1 Lịch sử phát triển: 1.2 Cấu tạo hoạt động: 1.3 Các thông số đặc trưng: 11 1.3.1 Giới hạn độ phân giải: 11 1.3.2 Độ phóng đại: 12 1.4 Thu thập quan sát ảnh từ kính hiển vi kim tương: .12 CHƯƠNG 2: TỔNG QUAN VỀ PHƯƠNG PHÁP XÁC ĐỊNH KÍCH THƯỚC HẠT TRONG KIM TƯƠNG 15 CHƯƠNG 3: TỔNG QUAN VỀ ẢNH SỐ VÀ XỬ LÝ ẢNH SỐ .20 3.1 Giới thiệu xử lý ảnh: 20 3.1.1 Ảnh số: .20 3.1.2 Xử lý ảnh số gì? .21 3.1.3 Lịch sử xử lý ảnh: 21 3.2 Các bước xử lý ảnh: 24 3.3 Một số khái niệm xử lý ảnh: 25 3.3.1 Điểm ảnh (Pixel) 25 3.3.2 Mức xám (Gray level) 26 3.3.3 Ảnh (Image) .26 3.3.4 Biểu diễn ảnh (Image Representation) .26 3.3.5 Tăng cường ảnh (Image Enhancement) .26 3.3.6 Khôi phục ảnh (Image Restoration) 27 3.3.7 Biến đổi ảnh (Image Transform) 27 3.3.8 Phân tích ảnh (Image Analyze) 27 3.3.9 Nhận dạng ảnh (Image Recognition) 27 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu 3.3.10 Tra cứu ảnh (Image Retrieval) .27 3.4 Một số quan hệ điểm ảnh: .28 3.4.1 Lân cận điểm ảnh 28 3.4.2 Tính liền kề, tính liên thông, vùng biên 28 3.4.3 Thuật toán tìm thành phần liên thông: .30 3.4.4 Độ đo khoảng cách: 32 CHƯƠNG 4: THIẾT KẾ CHI TIẾT CÁC KHỐI CHỨC NĂNG CHÍNH .35 4.1 Bộ số liệu đầu vào: 35 4.2 Chuẩn kích thước: 36 4.3 Chuyển ảnh thành ảnh xám: 37 4.4 Lấy phần có kích thước chuẩn ảnh để xử lý: 37 4.5 Nhị phân ảnh: 38 4.6 Lọc nhiễu: 40 4.7 Thuật toán tách hạt: 42 4.8 Tính toán diện tích hạt: .43 CHƯƠNG 5: CÁC KẾT QUẢ ĐẠT ĐƯỢC .46 5.1 Lựa chọn thiết bị công cụ lập trình: .46 5.1.1 PC .46 5.1.2 Công cụ lập trình 46 5.2 Các hàm sử dụng: .46 5.3 Giao diện: 47 5.4 Kết chạy chương trình toàn tập số liệu: 48 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC CHƯƠNG TRÌNH 55 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu Danh mục hình vẽ Hình 1.1 Ví dụ kính hiển vi quang học Hình 1.2 Sơ đồ tia sáng kính hiển vi 11 Hình 1.3 Kính hiển vi kim loại học OLIMPUS Trung tâm Đo lường (Viện Công nghệ/Tổng cục CNQP) .13 Hình 1.4 Quan sát ảnh kính hiển vi .13 Hình 2.1 Ảnh kim tương tổ chức kim loại chụp từ kính hiển vi kim loại học .15 Hình 2.2 Thước đo vật kính 16 Hình 2.3 Thước đo thị kính .16 Hình 2.4 Ví dụ xác định giá trị vạch thước đo thị kính 17 Hình 2.5 Ảnh gốc (a) cách đếm thủ công hạt ảnh (b) .19 Hình 3.1 Một số hệ tọa độ màu .21 Hình 3.2 Ảnh số tạo vào năm 1921 từ băng mã hóa máy in điện tín 22 Hình 3.3 Ảnh số tạo năm 1922 từ card đục lỗ sau lần truyền qua Đại Tây Dương 22 Hình 3.4 Ảnh 15 cấp độ xám truyền từ Luân Đôn đến New York năm 1929 23 Hình 3.5 Ảnh mặt trăng chụp tàu vũ trụ Ranger Mỹ vào 09 phút sáng ngày 31/7/1964 (Nguồn: NASA) 24 Hình 3.6 Tổng quan giai đoạn xử lý ảnh 25 Hình 3.7 Ví dụ m-liền-kề (Nguồn: R.C Gonzalez, R.E Woods) .29 Hình 4.1 Một ví dụ ảnh đầu vào cho vật liệu thép Cacbon với cấp hạt .36 Hình 4.2 Ảnh xám cắt theo kích thước lựa chọn 38 Hình 4.3 Ảnh nhị phân 40 Hình 4.4 Ảnh nhị phân trước lọc 41 Hình 4.5 Ảnh nhị phân sau lọc .42 Hình 4.6 Ảnh sau lọc (a) kết đếm tự động (b) 43 Hình 4.7.1 Ảnh đầu vào thước chuẩn (độ phóng đại 100 lần) .44 Hình 4.7.2 Ảnh xám cắt từ ảnh 4.7.1 theo kích thước 200 x 200 pixel 44 Hình 4.7.3 Ảnh nhị phân ảnh 4.7.2 44 Hình 4.7.4 Ảnh nhị phân 4.7.3 lọc 45 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu Hình 5.1 Giao diện chương trình 47 Hình 5.2 Ví dụ chạy chương trình với kết nhận dạng .51 Hình 5.3 Ví dụ chạy chương trình với kết nhận dạng sai 51 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu MỞ ĐẦU Đo lường ngành khoa học ứng dụng rộng rãi lĩnh vực, nghiên cứu khoa học công nghệ, công cụ để kiểm tra đánh giá chất lượng sản phẩm, làm tai mắt cho hệ thống tự động hoá trình sản xuất Đặc biệt nghiên cứu vật liệu đo lường đứng vị trí hàng đầu để giúp nhà khoa học có chìa khoá mở cánh cửa để khám phá tham số Trong Công nghiệp Quốc phòng, đo lường chiếm vị trí đặc biệt quan trọng để định, đánh giá độ đảm bảo tin cậy sản phẩm vũ khí Trình độ kỹ thuật không phát triển ngày không thực phép đo xác, vạn tiến tới trình đo tự động để điều khiển quy trình công nghệ Đo lường thông số hình học, xác định tiêu tính vật liệu qua đánh giá chất lượng sử dụng chiếm vai trò quan trọng sản xuất, đặc biệt sản phẩm vũ khí Công nghiệp Quốc phòng Trước đây, người ta thường sử dụng thiết bị đo mà việc tính toán xử lý kết hoàn toàn thủ công Do yêu cầu cấp thiết sản xuất chế tạo mà đo lường ngày phát triển Nhiều phương pháp đo đời, nhiều phương tiện đo đại chế tạo với độ xác phép đo ngày cao Từ thập kỷ 70 trở lại với phát triển mạnh mẽ ngành - điện tử - tin học việc ứng dụng thành tựu kỹ thuật điện tử tin học vào ngành khí khiến cho đo lường tiến vượt bậc Sự ghép nối thành công máy tính máy công tác làm xuất thiết bị đo, hệ thống đo lường sử dụng kỹ thuật vi điện tử, vi xử lý có tính đại độ xác cao Các thiết bị đo thông minh cài đặt vi xử lý mà chúng có khả vượt trội thiết bị đo thông thường như: - Cho phép chuyển thẳng số liệu đo vào máy tính để xử lý đưa kết đo nhanh chóng - xác Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu - Có khả tự xử lý lưu giữ kết đo - Thực công việc đo theo chương trình - Tự động thu thập số liệu đo có khả truyền số liệu xa Hiện nay, xử lý ảnh lĩnh vực quan tâm nhiều Tại hầu có khoa học tiên tiến giới, loại trang thiết bị, máy móc, sản phẩm thông minh ứng dụng vào hầu hết lĩnh vực Cùng với phát triển công nghệ thông tin, trí tuệ nhân tạo xử lý ảnh ứng dụng vào nhiều lĩnh vực Một ứng dụng rộng rãi thu thập xử lý thông tin qua ảnh để xác định kích thước đối tượng Đo kích thước toán đo lường Tuy nhiên có nhiều trường hợp khó tiếp cận để đo trực tiếp kích thước đối tượng Chẳng hạn cần xác định kích thước bước bánh nhỏ chi tiết vũ khí, hay xác định kích thước bệ cách đạn SPG9, tên lửa Igla, đặc biệt xác định kích thước hạt nghiên cứu tổ chức kim tương để đánh giá tiêu tính vật liệu Một giải pháp cho trường hợp đo kích thước từ ảnh chụp đối tượng Chi tiết điều khiển tên lửa phòng không tầm thấp Cụm đuôi đạn chống tăng hệ Trong đồ án tác giả lựa chọn toán xác định kích thước hạt từ chụp ảnh kim tương vật liệu kim loại Đầu vào toán ảnh kim tương chụp từ kính hiển vi kim loại học (ảnh kim tương trình bầy chi tiết chương 2) Đầu kích thước hạt ảnh kim tương Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Mở đầu Việc xác định kích thước hạt từ ảnh kim tương thường làm phương pháp thủ công trình bầy chi tiết chương Dự kiến kết luận văn xác định tự động kích thước hạt từ ảnh kim tương cách nhanh chóng xác Nội dung đồ án trình bày chương: - Chương 1: Trình bầy tổng quan hệ thống thu thập ảnh số đối tượng chụp từ kính hiển vi - Chương 2: Trình bầy tổng quan ảnh kim tương phương pháp xác định kích thước hạt kim tương - Chương 3: Trình bầy tổng quan ảnh số xử lý ảnh số - Chương 4: Trình bầy thiết kế chi tiết khối chức thực việc xác định kích thước hạt từ ảnh kim tương - Chương 5: Trình bầy kết đạt - Chương 6: Kết luận hướng phát triển Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Chương 1: Tìm hiểu hệ thống thu thập ảnh số đối tượng từ kính hiển vi CHƯƠNG 1: TÌM HIỂU VỀ CÁC HỆ THỐNG THU THẬP ẢNH SỐ CỦA ĐỐI TƯỢNG TỪ KÍNH HIỂN VI Kính hiển vi quang học loại kính hiển vi sử dụng ánh sáng khả kiến để quan sát hình ảnh vật thể nhỏ phóng đại nhờ hệ thống thấu kính thủy tinh Kính hiển vi quang học dạng kính hiển vi đơn giản, lâu đời phổ biến Các kính hiển vi quang học cũ thường phải quan sát hình ảnh trực tiếp mắt nhìn qua thị kính Hiện kính hiển vi đại gắn thêm CCD camera phim ảnh quang học để chụp ảnh 1.1 Lịch sử phát triển: Bằng chứng lịch sử ban đầu liên quan đến đời kính hiển vi quang học công bố khả phóng đại vật thể kính phóng đại Books of Optics vào năm 1021 Ibn al-Haytham (Alhazen) Sau sách xuất bản, Roger Bacon Anh quốc lý giải mô tả chế việc phóng đại vào kỷ 13, dẫn đến phát triển kính lúp phóng đại Italia Những kính hiển vi ban đầu phát minh vào năm 1590 Middelburg, Hà Lan Ba người thợ tạo kính Hans Lippershey (người phát triển kính viễn vọng trước đó), Zacharias Janssen, với cha họ Hans Janssen người xây dựng nên kính hiển vi sơ khai Năm 1625, Giovanni Faber người xây dựng kính hiển vi hoàn chỉnh đặt tên Galileo Galilei Các cấu trúc kính hiển vi quang học tiếp tục phát triển đó, kính hiển vi sử dụng cách phổ biến Italia, Anh quốc, Hà Lan vào năm 1660, 1670 Marcelo Malpighi Italia bắt đầu sử dụng kính hiển vi để nghiên cứu cấu trúc sinh học phổi Đóng góp lớn thuộc nhà phát minh người Hà Lan Antoni van Leeuwenhoek, người phát triển kính hiển vi để tìm tế bào hồng cầu tinh trùng công bố phát Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Chương 1: Tìm hiểu hệ thống thu thập ảnh số đối tượng từ kính hiển vi 1.2 Cấu tạo hoạt động: Một kính hiển vi quang học gồm phần sau: - Nguồn sáng; - Hệ hội tụ tạo chùm sáng song song; - Giá mẫu vật; - Vật kính (có thể thấu kính hệ thấu kính) phận tạo nên phóng đại; - Hệ lật ảnh (lăng kính, thấu kính); - Thị kính thấu kính tạo ảnh quan sát cuối cùng; - Hệ ghi ảnh Hình 1.1 Ví dụ kính hiển vi quang học Thị kính: Có thể từ đến thấu kính thủy tinh cho phép tạo ảnh cuối vật qua hệ quang học Độ phóng đại thị kính nhỏ, thường 10x, lắp đặt ống trụ, cho phép thay đổi dễ dàng Giá điều chỉnh vật kính Vật kính: thấu kính quan trọng hệ tạo ảnh nhờ thấu kính, (hoặc hệ nhiều thấu kính) có tiêu cự ngắn, cho phép phóng đại vật với độ Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Chương 6: Kết luận hướng phát triển CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Với kết trình bày chương trên, qua thời gian thực hiện, đồ án đạt số kết sau: - Nắm vấn đề ảnh số xử lý ảnh số - Nắm nguyên lý hoạt động kính hiển vi quang học - Nghiên cứu thuật toán ước lượng kích thước ảnh số - Triển khai phần mềm phân tích xác định kích thước hạt ảnh số - Sử dụng thành thạo phần mềm MATLAB ứng dụng MATLAB xử lý ảnh số - Nắm quy trình phân tích, thiết kế, triển khai đồ án nói riêng công việc phức hợp nói chung Tuy đạt số kết định đồ án số tồn như: - Chương trình cần phải thông qua MATLAB PC để thực - Số lượng mẫu thử - Chương trình tách hạt chưa đáp ứng với mẫu ảnh đầu vào mờ, hạt dính - Chương trình xác định kích thước hạt ảnh lưu PC Từ tồn ta xác định hướng phát triển đề tài sau: Hướng phát triển: - Nhúng phần mềm phân tích xử lý lên mạch số để hướng tới xây dựng thiết bị không sử dụng PC - Mở rộng số lượng mẫu ảnh cần xác định kích thước để tiếp tục kiểm chứng nâng cao độ tin cậy chất lượng giải pháp đề xuất - Tìm hiểu phát triển thuật toán xử lý ảnh để mở rộng khả khắc phục trường hợp ảnh mờ, ảnh có hạt dính - Gắn Camera vào kính hiển vi để thu thập ảnh đầu vào trực tiếp từ Camera - Giải toán xác định kích thước toán tương tự (2-D) mở rộng để xác định kích thước chi tiết 3-D 53 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo TÀI LIỆU THAM KHẢO [1] Gonzalez R C., Wood R.E., “Digital Image Processing Using Matlab”, Prentice Hall, 2004 [2] H.A.БОГОМОЛОВА (1978), ПРАКТИЧЕСКАЯ МЕТЛЛОГРАФИЯ [3] Lương Mạnh Bá, Nguyễn Thanh Thủy “Nhập môn xử lý ảnh số”, Đại học Bách khoa Hà Nội, 2000 [4] Các tài liệu Matlab tại: http://www.mathworks.com [5] Các tài liệu Kính hiển vi tại: http://www.microscope.com 54 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo PHỤ LỤC CHƯƠNG TRÌNH function varargout = GUI_24102010(varargin) % GUI_24102010 M-file for GUI_24102010.fig % GUI_24102010, by itself, creates a new GUI_24102010 or raises the existing % singleton* % H = GUI_24102010 returns the handle to a new GUI_24102010 or the handle to % the existing singleton* % GUI_24102010('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in GUI_24102010.M with the given input arguments % GUI_24102010('Property','Value', ) creates a new GUI_24102010 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before Gui_Thinh_DL2_OpeningFunction gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to GUI_24102010_OpeningFcn via varargin % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help GUI_24102010 % Last Modified by GUIDE v2.5 25-Oct-2010 01:00:56 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @GUI_24102010_OpeningFcn, 'gui_OutputFcn', @GUI_24102010_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); 55 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % - Executes just before GUI_24102010 is made visible function GUI_24102010_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI_24102010 (see VARARGIN) % Choose default command line output for GUI_24102010 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes GUI_24102010 wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = GUI_24102010_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure 56 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo varargout{1} = handles.output; % - Executes on button press in pushbutton1 function pushbutton_Open_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global input_image name pathname [filename,pathname] = uigetfile('.jpg'); axes(handles.Image); cla; name = strcat(pathname,filename); [m,n] = size(name); if n > input_image = imread(name); input_image=imresize(input_image,[600 800],'bilinear'); imshow(input_image); end set(handles.caphat,'string',''); set(handles.sohat,'string',''); % - Executes on button press in pushbutton2 function pushbutton_Gray_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 57 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo global input_image name pathname Image_gray axes(handles.Image); cla; info = imfinfo(name); if strcmp(info.ColorType,'truecolor') Image_gray=rgb2gray(input_image); else Image_gray = input_image; end Image_gray = anhchuan_gray(Image_gray); imwrite(Image_gray,strcat(pathname,'\anh_xam.jpg')); imshow(Image_gray); % - Executes on button press in pushbutton3 function pushbutton_Binary_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Image_gray Image_binary pathname axes(handles.Image); cla; T = graythresh(Image_gray); Image_binary = gray2binary(Image_gray,T*256); Image_binary = - Image_binary; imwrite(Image_binary,strcat(pathname,'\anh_nhiphan.jpg')); imshow(Image_binary); 58 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo % - Executes on button press in pushbutton_Filter function pushbutton_Filter_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_Filter (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Image_binary pathname axes(handles.Image); cla; % Tao mat na voi co thay doi for a=3:15 w=makingmask(a); Image_binary = Tfilter(Image_binary,w); % ham loc cua so end imwrite(Image_binary,strcat(pathname,'\anh_nhiphan_daloc.jpg')); imshow(Image_binary); % - Executes on button press in pushbutton_Recognition function pushbutton_Recognition_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_Recognition (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Image_binary pathname calib [L,num]=bwlabel(Image_binary,4);% gan nhan cho doi tuong label=[]; %dem=[]; f1=Image_binary; for i=1:num [r,c] = find(L == i); 59 Giáo viên hướng dẫn: PGS-TSKH Trần Hoài Linh Tài liệu tham khảo label=f1(min(r):max(r),min(c):max(c)); [m,n]=size(label); if (m*n