基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】.zip
大小:71.51KB
价格:50积分
下载量:0
评分:
5.0
上传者:2401_87911692
更新日期:2025-09-22

基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】.zip

资源文件列表(大概)

文件名
大小
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/main.fig
18.29KB
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/main.m
8.67KB
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/mainfc.p
202B
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/川F1A666.jpg
37.1KB
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/鄂K9M555.jpg
29.27KB
基于MATLAB的车牌识别实现车牌定位系统【含界面GUI】/
-

资源内容介绍

matlab图像处理
function varargout = main(varargin)% MAIN MATLAB code for main.fig% MAIN, by itself, creates a new MAIN or raises the existing% singleton*.%% H = MAIN returns the handle to a new MAIN or the handle to% the existing singleton*.%% MAIN('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in MAIN.M with the given input arguments.%% MAIN('Property','Value',...) creates a new MAIN or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before main_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to main_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 main% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @main_OpeningFcn, ... 'gui_OutputFcn', @main_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endmainfc;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 main is made visible.function main_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 main (see VARARGIN)% Choose default command line output for mainhandles.output = hObject;clc; warning off all;axes(handles.axes1); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes2); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes3); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes4); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes5); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes6); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes7); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes8); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);handles.Img=[];% Update handles structureguidata(hObject, handles);% UIWAIT makes main wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = main_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 structurevarargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (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 edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (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% --- Executes on button press in pushbutton1.function pushbutton1_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)axes(handles.axes1); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes2); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes3); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes4); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes5); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes6); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes7); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);axes(handles.axes8); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);[filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif', 'All Image Files';... '*.*', '所有文件' }, '选择图像文件', fullfile(pwd, 'images/川F1A666.jpg'));if filename == 0 return;end% 文件名file = fullfile(pathname, filename);% 图像矩阵Img = imread(file);%激活第一个轴对象axes(handles.axes1);imshow(Img, []);%激活第二个轴对象axes(handles.axes2);imshow(Img, []);%保存为全局变量handles.Img = Img;guidata(hObject, handles);% --- Executes on button press in pushbutton2.function pushbutton2_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)Img=handles.Img;%对图像I进行灰度处理I_gray=rgb2gray(Img);axes(handles.axes3);imshow(I_gray);title('灰度图像');%利用Sobel算子进行边缘检测I_edge=edge(I_gray,'sobel');axes(handles.axes4);imshow(I_edge)title('边缘检测后图像');se=[1;1;1];%对边缘图像进行腐蚀I_erode=imerode(I_edge,se);axes(handles.axes5);imshow(I_erode);title('腐蚀后边缘图像');se=strel('rectangle',[25,25]);%填充图像I_close=imclose(I_erode,se);axes(handles.axes6);imshow(I_close)title('填充后图像');%去除聚团灰度值小于1500的部分I_final=bwareaopen(I_close,1500);axes(handles.axes7);imshow(I_final);title('形态滤波后图像');I_new=zeros(size(I_final,1),size(I_final,2));location_of_1=[];%寻找二值图像中白的点的位置for i=1:size(I_final,1) for j=1:size(I_final,2) if I_final(i,j)==1; newlocation=[i,j]; location_of_1=[location_of_1;newlocation]; end endendmini=inf;maxi=0;%寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置for i=1:size(location_of_1,1) temp=location_of_1(i,1)+location_of_1(i,2); if temp<mini mini=temp; a=i; end if temp>maxi maxi=temp; b=i; endend%和最小的点为车牌的左上角first_point=location_of_1(a,:);%和最大的点为车牌的右下角last_point=location_of_1(b,:);%坐标值修正x1=first_point(1)+10;x2=last_point(1)-4;y1=first_point(2)+10;y2=last_point(2)-4;I_plate=Img(x1:x2,y1:y2);g_max=double(max(max(I_plate)));g_min=double(min(min(I_plate)));% T为二值化的阈值T=round(g_max-(g_max-g_min)/3);I_plate =im2bw (I_plate,T/256);I_plate=bwareaopen(I_plate,20);I_plate(: ,y2)=0;axes(handles.axes8);I_plate=bwareaopen(I_plate,100);%画出最终车牌imshow(I_plate)title('车牌提取')% --- Executes on button press in pushbutton3.function pushbutton3_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)close(handles.figure1)function edit2_Callback(hObject, eventda

用户评论 (0)

发表评论

captcha