THIẾT kế bộ lọc NHIỄU để KHÔI PHỤC ẢNH TRÊN nền CÔNG NGHỆ FPGA (có code)

71 305 0
THIẾT kế bộ lọc NHIỄU để KHÔI PHỤC ẢNH TRÊN nền CÔNG NGHỆ FPGA (có code)

Đ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

ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ BỘ LỌC NHIỄU ĐỂ KHÔI PHỤC ẢNH TRÊN NỀN CÔNG NGHỆ FPGA DANH MỤC CÁC TỪ VIẾT TẮT FPGA Field Programmable Gate Array ADC Analog to Digital Converter AMBA Advanced Microcontroller Bus Architecture ASIC Application Specific Integrated Circuit BUS Bus System CLB Configurable Logic Blocks CPU Central Processing Unit VHDL VHSIC Hardware Description Language VHSIC Very High Speed Integrated Circuit ĐỒ ÁN TỐT NGHIỆP Trang 3/71 CHƯƠNG KHÁI QUÁT VỀ ĐỀ TÀI 1.1 Giới thiệu Thiết kế lọc nhiễu để khôi phục ảnh công nghệ FPGA  Nghiên cứu công nghệ FPGA: - Kiến trúc FPGA - Phân biệt loại FPGA - Cơng nghệ FPGA có đặc tính lập trình nào? - Sự khác cơng nghệ khác với FPGA  Tìm hiểu hình ảnh: - Khái hình ảnh - Nguyên nhân gây nhiễu - Phân biệt loại nhiễu ảnh - Cách xử lý nhiễu ảnh  Áp dụng công nghệ FPGA để tạo chip xử lý ảnh nhiễu 1.2 Phương thức nghiên cứu: - Tìm hiểu chung hình ảnh - Các nhiễu ảnh thường gặp - Cách xử lý nhiễu ảnh - Sử dụng phần mền Quatus II - Sử dụng ngơn ngữ lập trình VHDL - Sử dụng Matlab KIT DE2-115 mô Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 4/71 CHƯƠNG ẢNH SỐ 2.1 Một số khái niệm ảnh số: 2.1.1 Điểm ảnh: Mọi hình ảnh ta nhìn thấy tín hiệu tương tự, ta thu lại chuyển đổi thành tín hiệu số để xử lý máy tính, điều ta gọi số hóa Số hóa ảnh biến đổi liên tục hình ảnh thành tập hợp điểm ảnh rời rạt phù hợp với với ảnh thật không gian độ sáng Khoảng cách điểm ảnh phải xử lý cho mắt người thấy ranh giới điểm ảnh Một điểm ảnh ta gọi Pixel (PEL: Picture Element) Trong không gian ảnh hai chiều, pixel ứng với cặp tọa độ (x, y) Hình 2-1: Một pixel khung ảnh[5] Mỗi điểm ảnh phần tử ảnh số tọa độ (x, y) với độ xám màu định Khoảng kích thước điểm ảnh phải chọn cho phù hợp đê mắt người nhìn thấy khơng bị cảm nhận liên tục ảnh không gian hay màu sắc so với ảnh thật Mỗi phần tử trng ma trận ảnh gọi phần tử ảnh Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 5/71 2.1.2 Độ phân giải ảnh: Độ phân giải (Resolution) ảnh mật độ điểm ảnh phân bố ảnh số Chúng ta định nghĩa, khoảng điểm ảnh phải lụa chọn cho xem ảnh thấy liện tục ảnh Việc lựa chọn khoảng cách thích hợp, phân bố mật độ theo trục x y không gian hai chiều tạo nên độ phân giải ảnh Hình 2-2: Ba độ phân giải phổ biến khung ảnh nay[5] 2.1.3 Mức xám ảnh: Chúng ta định nghĩa cường độ ánh sáng điểm ảnh mức xám điểm ảnh Hiện thường có thang đo mức xám phổ biến như: 16, 32, 64, 128, 256 Hiện thường dùng byte (8 bit) để biển diễn mức xám, nên mức 256 mức dung phổ biến Mức xám vị trí (x, y) không gian ảnh đặc trưng điểm ảnh 2.1.4 Quan hệ điểm ảnh: Một ảnh số biểu diễn khơng gian ảnh chiều hàm tốn học f(x, y) Tập hợp điểm ảnh S quan hệ cặp điểm ảnh gọi p, q Thì lân cận điểm ảnh xét sau: Giả sử điểm ảnh p tọa độ (x, y) Thì lân cận p có điểm theo chiều đứng ngang: N4(p) = {(x - 1, y); (x + 1, y); (x, y - 1); (x, y + 1)} Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 6/71 Và điểm lân cận theo phương chéo: ND(p) = {(x - 1, y - 1); (x - 1, y + 1); (x + 1, y -1); (x + 1, y + 1)} Từ ta suy tập kết hợp điểm lân cận p là: N8(p) = N4(p) + ND(p) (X-1, Y+1) (X, Y+1) (X+1, Y+1) (X-1, Y) (X, Y) (X+1, Y) (X, Y-1) (X+1, Y-1) (X-1, Y-1) Hình 2-3: : Các lân cận điểm ảnh 2.1.5 Ảnh nhị phân: Là ảnh có có hệ thống màu đơn giản mô tả hai màu đen trắng pixel, nên cần biểu diễn bit 21 mức khác nhau, nói khác điểm ảnh ảnh nhị phân Ảnh nhị phân thường thấy ảnh văn bản, kiến trúc dấu vân tay 2.1.6 Ảnh Gay sacle: Là ảnh có hệ thống màu đơn giản với Hình 2-4: Ảnh nhị phân[5] 256 cấp độ xám biến thiên từ màu đen đến màu trắng Người ta chia mức đen trắng thành L mức Nếu sử dụng số bit B = 8bits để mã hóa mức xám L xác định sau: L = 2B = 28 = 256 mức Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 7/71 Như pixel biểu diễn 1byte 8bits Ảnh thường sử dụng công nghiệp in ấn lẫn y khoa (ảnh X-ray) 2.1.7 Ảnh màu: Trong giới màu sắc thường lấy màu đỏ, lục, lam (red, green, blue: RGB) làm màu để tạo nên giới màu, ảnh số chúng tập hợp lại thành khối lập phương đơn vị, đường chéo thể cấp độ tỷ lệ tương đương màu sắc ứng với mức độ xám từ đen (0, 0, 0) đến trắng (1, 1, 1) Hình 2-5: Mơ hình màu RGB Biểu diễn ảnh màu: Ảnh màu biểu diễn vector chiều gồm fR (x, y), fG (x, y), fB(x, y) thể màu RGB pixel vị trí (x,y): f(x, y) = { fR(x, y), fG(x, y), fB(x, y)} Màu sắc biễu diễn với mơ hình khác như: • Mơ hình HSV (Hue - Saturation – Value) mơ hình dựa HSV không gian màu dùng nhiều việc chỉnh sửa ảnh, phân tích ảnh phần lĩnh vực thị giác máy tính Hệ khơng gian dựa vào thông số sau để mô tả màu sắc H = Hue: màu sắc, S = Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 8/71 Saturation: độ đậm đặc, bảo hòa, V = value: giá trị cường độ sáng Không gian màu thường biểu diễn dạng hình trụ hình nón • Mơ hình CMY (Cyan – Magenta - Yellow) không gian màu sử dụng phổ biến ngành công nghiệp in ấn Ý tưởng hệ không gian dùng màu sắc để phục vụ cho việc pha trộn mực in Trên thực tế, người ta dùng màu C=Cyan: xanh lơ, M=Magenta: hồng xẫm, Y=Yellow: vàng để biểu diễn màu sắc khác 2.2 Khái niệm số loại nhiễu ảnh: Như biết, nơi truyền thơng tin có nhiễu Nhiễu ảnh hưởng đến độ xác tin cậy thơng tin Trong hình ảnh vậy, nhiễu ảnh hưởng đến chất lượng hình ảnh, làm sai lệch màu sắc làm cho ảnh truyền tải đến người xem không rõ Một số loại nhiễu thường gặp là: 2.2.1 Nhiễu Gauss: Nhiễu Gauss gọi nhiễu điện tử gây khuếch đại máy dò Nhiễu Gauss nhiễu cộng độc lập Nhiễu phân tán Gauss diễn tả độ lệch chuẩn phương sai Mỗi pixel ảnh có giá trị ngẫu nhiên, nhiễu Gauss phân bố ngẫu nhiên Những dao động ngẫu nhiên tín hiệu có mực độ xác suất là: Nếu ta có ảnh I, nhiễu Gauss N, ảnh nhiễu N + I Với: g cường độ µ giá trị trung bình σ độ lệch chuẩn σ phương sai g Hình 2-6: Hàm mật độ xác suất nhiễu Gauss Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 9/71 2.2.2 Nhiễu Rayleigh: Khoảng cách vận tốc truyền ảnh radar chứa nhiễu thể phân bố Rayleigh [6] Trị trung bình: Hình 2-7: Hàm biểu diễn nhiễu Rayleigh.[6] Phương sai: 2.2.3 Nhiễu Gamma (Erlang): Nhiễu Gamma thường thấy xảy thiết bị máy chiếu Nó tn theo phân phối Gamma [6] Hình 2-8: Hàm mật độ xác suất nhiễu Erlang.[6] 2.2.4 h N i ễn Exponentical: Đây trường hợp đặc biệt nhiễu Erlang b=1 2.2.5 Nhiễu Photon (nhiễu Poisson): Hình 2-9: Hàm biểu diễn nhiễu Exponentical.[6] Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 10/71 Nhiễu thường xuất sóng điện từ tia X, ánh sáng nhìn thấy hay tia gamma Các nguồn phát tia X, tia gamma phát số lượng photon đơn vị thời gian Trong máy ảnh tia X tia gamma y tế, tia đưa vào thể bệnh nhân từ nguồn phát xạ Những nguồn có dao động ngẫu nhiên photon Kết thu thập hình ảnh có ngẫu nhiên khơng gian thời gian Nhiễu gọi nhiễu lượng tử (photon) nhiễu bắn Nhiễu tuân theo phân phối Poisson sau: 2.2.6 Nhiễu xung (nhiễu muối tiêu): Một loại nhiễu thường làm hỏng hình ảnh kỹ thuật số nhiễu xung Nhiễu xung phân thành hai loại: nhiễu xung có giá trị cố định nhiễu xung ngẫu nhiên Nhiễu xung có giá trị cố định gọi nhiễu muối tiêu mà độ xám pixel có ảnh hưởng nhiễu tối thiểu tối đa theo độ xám ảnh Độ xám điểm ảnh bị ảnh hưởng nhiễu nhiễu xung ngẫu nhiên có độ xám phân bố đồng khoảng [0,255] ảnh, mật độ xác suất là: P(z) = Nếu b > a cường độ b chấm trắng ảnh Ngược lại cường độ a chấm đen Nếu Pa Pb nhiễu gọi nhiễu đơn cực Nếu xác suất khác chúng gần nhiễu xung tương ấn có hạt muối tiêu phân bố theo xác suất ngẫu nhiêu hình 2.3 Bộ lọc median: Hình 2-10: Hàm mật độ nhiễu muối tiêu Lọc trung vị lọc phi tuyến Một phép lọc [6] phi tuyến kết thu từ tổng trọng số điểm ảnh (Pixel) lân cận Sau định nghĩa kích thước vùng lân cận, giá trị điểm ảnh (Pixel) trung tâm thay trung vị tức giá trị tất giá trị điểm vùng lân cận Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 57/71 % function named CALLBACK in APP_MEDIANFILTER.M with the given input arguments % % APP_MEDIANFILTER('Property','Value', ) creates a new APP_MEDIANFILTER or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before APP_MEDIANFILTER_OpeningFcn gets called An % % unrecognized property name or invalid value makes property application stop All inputs are passed to APP_MEDIANFILTER_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 APP_MEDIANFILTER % Last Modified by GUIDE v2.5 06-Jan-2019 19:00:49 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @APP_MEDIANFILTER_OpeningFcn, 'gui_OutputFcn', @APP_MEDIANFILTER_OutputFcn, 'gui_LayoutFcn', [] , Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 58/71 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT end % - Executes just before APP_MEDIANFILTER is made visible function APP_MEDIANFILTER_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 APP_MEDIANFILTER (see VARARGIN) % Choose default command line output for APP_MEDIANFILTER handles.output = hObject; % Update handles structure guidata(hObject, handles); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 59/71 % UIWAIT makes APP_MEDIANFILTER wait for user response (see UIRESUME) % uiwait(handles.figure1); global s; s = serial('COM1'); set(handles.COMmenu,'string',getAvailableComPort); end % - Outputs from this function are returned to the command line function varargout = APP_MEDIANFILTER_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 varargout{1} = handles.output; K=zeros(256); axes(handles.GrayImage); imshow(K); axes(handles.NoiseImage); imshow(K); axes(handles.FilteredImagebyMatlab); imshow(K); axes(handles.FilteredImagebyFPGA); imshow(K); end Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 60/71 function location_Callback(hObject, eventdata, handles) % hObject handle to location (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of location as text % str2double(get(hObject,'String')) returns contents of location as a double end % - Executes during object creation, after setting all properties function location_CreateFcn(hObject, eventdata, handles) % hObject handle to location (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end % - Executes on button press in searchbutton function searchbutton_Callback(hObject, eventdata, handles) % hObject handle to searchbutton (see GCBO) Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 61/71 % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global img; [filename, pathname] = uigetfile('*.bmp;*.tif;*.jpg;*.pgm;*.png','Pick an Mfile'); name=strcat(pathname,filename); I=imread(name); % 24-bit BMP image RGB888 gray_radio = get(handles.gray_radio, 'value'); color_radio = get(handles.color_radio, 'value'); if (gray_radio == 1) img=rgb2gray(I); % set(handles.color_radio, 0); elseif(color_radio == 1) img=I; % set(handles.gray_radio,0); end set(handles.location,'string',name); axes(handles.GrayImage); imshow(img); set(handles.addnoisebutton,'Enable','on'); set(handles.filterbyMatlabbutton,'Enable','off'); set(handles.filterbyFPGAbutton,'Enable','off'); K=zeros(256); axes(handles.NoiseImage); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 62/71 imshow(K); axes(handles.FilteredImagebyMatlab); imshow(K); axes(handles.FilteredImagebyFPGA); imshow(K); end % - Executes on button press in addnoisebutton function addnoisebutton_Callback(hObject, eventdata, handles) % hObject handle to addnoisebutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global img; global N; gray_radio = get(handles.gray_radio, 'value'); color_radio = get(handles.color_radio, 'value'); N = imnoise(img,'salt & pepper',0.05) size(N) axes(handles.NoiseImage); imshow(N) if (gray_radio == 1) img1D = N(:); fid = fopen('E:\projects\top_project\noise_image.hex', 'wt'); fprintf(fid, '%02x\n', img1D); fclose(fid); median_img = fopen('E:\projects\top_project\median_image.hex', 'wt'); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 63/71 fclose(median_img); end set(handles.addnoisebutton,'Enable','off'); set(handles.filterbyMatlabbutton,'Enable','on'); if(strcmp(get(handles.OpenSerialbutton,'Enable'),'off')) set(handles.filterbyFPGAbutton,'Enable','on'); end end % - Executes on button press in filterbyMatlabbutton function filterbyMatlabbutton_Callback(hObject, eventdata, handles) % hObject handle to filterbyMatlabbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global N; global P; gray_radio = get(handles.gray_radio, 'value'); color_radio = get(handles.color_radio, 'value'); if (gray_radio == 1) P = medfilt2(N,[3 3]); % set(handles.color_radio,0); elseif(color_radio == 1) RChannel = N(:, :, 1); GChannel = N(:, :, 2); BChannel = N(:, :, 3); redMF = medfilt2(RChannel, [3 3]); greenMF = medfilt2(GChannel, [3 3]); blueMF = medfilt2(BChannel, [3 3]); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 64/71 P = cat(3, redMF, greenMF, blueMF); % set(handles.gray_radio,0); end axes(handles.FilteredImagebyMatlab); imshow(P); set(handles.filterbyMatlabbutton,'Enable','off'); end % - Executes during object creation, after setting all properties function figure1_CreateFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called axis off end % - Executes on selection change in COMmenu function COMmenu_Callback(hObject, eventdata, handles) % hObject handle to COMmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns COMmenu contents as cell array % contents{get(hObject,'Value')} returns selected item from COMmenu end Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 65/71 % - Executes during object creation, after setting all properties function COMmenu_CreateFcn(hObject, eventdata, handles) % hObject handle to COMmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end % - Executes on selection change in baudmenu function baudmenu_Callback(hObject, eventdata, handles) % hObject handle to baudmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns baudmenu contents as cell array % contents{get(hObject,'Value')} returns selected item from baudmenu end % - Executes during object creation, after setting all properties function baudmenu_CreateFcn(hObject, eventdata, handles) % hObject handle to baudmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 66/71 % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end % - Executes on button press in OpenSerialbutton function OpenSerialbutton_Callback(hObject, eventdata, handles) % hObject handle to OpenSerialbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global s; comlist = get(handles.COMmenu,'String'); comindex = get(handles.COMmenu,'Value'); port=char(comlist(comindex,:)); out = instrfind('Port',port); % Check to see if THAT serial port is already defined in MATLAB if (~isempty(out)) % It is disp('WARNING: port in use Closing.') if (~strcmp(get(out(1), 'Status'),'open')) % Is it open? delete(out(1)); % If not, delete else % is open fclose(out(1)); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 67/71 delete(out(1)); end end s=serial(port); set(s,'Port',port); baudlist = get(handles.baudmenu,'String'); baudindex = get(handles.baudmenu,'Value'); baud = baudlist(baudindex,:); set(s,'Baudrate',str2double(baud),'tag','Medianfilter'); set(s,'OutputBufferSize',65536); set(s,'OutputBufferSize',65536,'InputBufferSize',65536); s.BytesAvailableFcnMode = 'byte'; s.BytesAvailableFcnCount = 65536; % s.Terminator = 'CR/LF'; s.BytesAvailableFcn = {@mycallback,handles}; % fopen(s); disp('WARNING: port in use Closing.') % get(s) % s.BytesAvailableFcn= {@mycallback,handles}; % s.Pinstatus % s.DataTerminalReady % s.FlowControl % s.RequestToSend set(handles.OpenSerialbutton,'Enable','off'); set(handles.CloseSerialbutton,'Enable','on'); set(handles.COMmenu,'Enable','off'); set(handles.baudmenu,'Enable','off'); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 68/71 set(handles.filterbyFPGAbutton,'Enable','on'); end % - Executes on button press in closeserialbutton function CloseSerialbutton_Callback(hObject, eventdata, handles) % hObject handle to closeserialbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % - Executes on button press in CloseSerialbutton global s; fclose(s); set(handles.OpenSerialbutton,'Enable','on'); set(handles.CloseSerialbutton,'Enable','off'); set(handles.COMmenu,'Enable','on'); set(handles.baudmenu,'Enable','on'); set(handles.filterbyFPGAbutton,'Enable','off'); end % - Executes during object deletion, before destroying properties function figure1_DeleteFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global s; if (strcmp(get(s,'status'),'open')) fclose(s); end delete(s); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 69/71 clear s; end % - Executes on button press in filterbyFPGAbutton function filterbyFPGAbutton_Callback(hObject, eventdata, handles) % hObject handle to filterbyFPGAbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global P; global N; % N=reshape(N,1,[]) % U=int8(N); % fopen(s); % pause(1); % fwrite(s,U); % fclose(s); fid = fopen('E:\projects\top_project\median_image.hex'); B = fscanf(fid,'%x'); fclose(fid); size(B) C = reshape(B,256,256); size(C) img = imresize(img,[256,256],'lanczos3') axes(handles.FilteredImagebyFPGA); imshow(img,[]) set(handles.filterbyFPGAbutton,'Enable','off'); set(handles.OpenSerialbutton,'Enable','on'); Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 70/71 end function mycallback(obj,event,handles) global s; % fopen(s); N = s.BytesAvailable(); while(N~=0) data = fread(s,65536,'int8') N = s.BytesAvailable(); end fclose(s); set(handles.OpenSerialbutton,'Enable','on'); end % - Executes on button press in PSNR function PSNR_Callback(hObject, eventdata, handles) % hObject handle to PSNR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global N; global P; global F; global PSNR_matlab; global SNR_matlab; [peaksnr, snr] = psnr(P, N); PSNR_matlab=peaksnr; SNR_matlab=snr; PSNR Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 71/71 end Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ... signal lệnh port map để kết nối thành phần có kiến trúc CHƯƠNG THIẾT KẾ BỘ LỌC NHIỄU MEDIAN 4.1 TRÊN CÔNG NGHỆ FPGA Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP... thiệu Thiết kế lọc nhiễu để khôi phục ảnh công nghệ FPGA  Nghiên cứu công nghệ FPGA: - Kiến trúc FPGA - Phân biệt loại FPGA - Công nghệ FPGA có đặc tính lập trình nào? - Sự khác công nghệ khác... trượt: Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục Ảnh Trên Nền Công Nghệ FPGA ĐỒ ÁN TỐT NGHIỆP Trang 30/71 Cửa sổ trượt có công dụng dùng để trượt qua ảnh để lấy giá trị ảnh đưa đến Median filter để xử

Ngày đăng: 22/03/2019, 20:32

Từ khóa liên quan

Mục lục

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • CHƯƠNG 1. KHÁI QUÁT VỀ ĐỀ TÀI

    • 1.1 Giới thiệu

    • 1.2 Phương thức nghiên cứu:

    • CHƯƠNG 2. ẢNH SỐ

      • 2.1 Một số khái niệm về ảnh số:

        • 2.1.1 Điểm ảnh:

        • 2.1.2 Độ phân giải ảnh:

        • 2.1.3 Mức xám của ảnh:

        • 2.1.4 Quan hệ giữa các điểm ảnh:

        • 2.1.5 Ảnh nhị phân:

        • 2.1.6 Ảnh Gay sacle:

        • 2.1.7 Ảnh màu:

        • 2.2 Khái niệm về một số loại nhiễu trong ảnh:

          • 2.2.1 Nhiễu Gauss:

          • 2.2.2 Nhiễu Rayleigh:

          • 2.2.3 Nhiễu Gamma (Erlang):

          • 2.2.4 Nhiễn Exponentical:

          • 2.2.5 Nhiễu Photon (nhiễu Poisson):

          • 2.2.6 Nhiễu xung (nhiễu muối tiêu):

          • 2.3 Bộ lọc median:

          • 2.4 Tỷ số tín hiệu trên nhiễu (PSNR):

          • CHƯƠNG 3. TÌM HIỂU FIELD-PROGRAMMABLE GATE ARRAY (FPGA)

            • 3.1 Khái quát về FPGA:

              • 3.1.1 Cấu trúc của FPGA:

              • 3.1.2 Phân loại FPGA

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

  • Đang cập nhật ...

Tài liệu liên quan