آموزش کامل پروژه تشخیص پلاک خودرو ایرانی با متلب
سلام. برای شما پروژه تشخیص پلاک خودرو ایرانی با متلب به همراه آموزش را آماده کردیم. این پروژه پردازش تصویر با متلب را از دست ندهید !
محتویات
پروژه تشخیص پلاک خودرو ایرانی با متلب
پردازش تصویر ، همیشه یکی از مباحث پرطرفدار و البته پیچیده در دنیای مهندسان بوده است و در موارد زیادی کاربرد دارد. همینطور که میدانید از پردازش تصویر بیشتر برای شناسائی پلاک خودرو های متخلف استفاده میشود. همچنین میشود در مباحث پیچیده تر پردازش تصویر ، در زمینه پردازش تصویر چهره افراد استفاده کرد. ما در این پروژه میخواهیم یک برنامه شناسائی پلاک خودرو های ایرانی با نرم فزار متلب را بنویسیم.
همچنین ببینید : تشخیص شماره پلاک خودرو با متلب و پردازش تصویر
آموزش تشخیص پلاک خودرو ایرانی
در فایل دانلودی ، فایلی به نام Demo قرار دارد. این فایل پروژه تشخیص خودرو در نرم افزار متلب است. برای تست پروژه میتوانید تصویری را که میخواهد انتخاب کنید تا تست انجام شود. ما 9 عدد تصویر را برای تست در فایل قرار داده ایم.
همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.
در این قسمت از کد ، روبروی IN آدرس تصویر را انتخاب کنید.سپس برنامه را اجرا کنید تا تشخیص پلاک را ببینید.
%% Read Image In = 8; % select a number between 1 to 9 Im = imread(fullfile('.', 'DataBase', strcat(num2str(In), '.jpg'))); % read image I = im2double(rgb2gray(Im)); % rgb to gray % figure();imshow(I)
توجه داشته باشید تصاویر را با قرمت JPG وارد کنید. اگر میخواهید از تصاویر با فرمت دیگری استفاده کنید بایست در کد نیز فرمت را تغییر دهید.
سورس کد کامل پردازش تصویر پلاک خودرو :
%% clear command windows clc clear all close all %% Read Image In = 8; % select a number between 1 to 9 Im = imread(fullfile('.', 'DataBase', strcat(num2str(In), '.jpg'))); % read image I = im2double(rgb2gray(Im)); % rgb to gray % figure();imshow(I) %% Sobel Masking SM = [-1 0 1;-2 0 2;-1 0 1]; % Sobel Vertical Mask IS = imfilter(I,SM,'replicate'); % Filter Image Using Sobel Mask IS = IS.^2; % Consider Just Value of Edges & Fray Weak Edges % figure();imshow(IS) %% Normalization IS = (IS-min(IS(:)))/(max(IS(:))-min(IS(:))); % Normalization % figure();imshow(IS) %% Threshold (Otsu) level = graythresh(IS); % Threshold Based on Otsu Method IS = im2bw(IS,level); % figure();imshow(IS) %% Histogram S = sum(IS,2); % Edge Horizontal Histogram % figure();plot(1:size(S,1),S) % view(90,90) %% Plot % figure() % subplot(1,2,1);imshow(IS) % subplot(1,2,2);plot(1:size(S,1),S) % axis([1 size(IS,1) 0 max(S)]);view(90,90) %% Plate Location T1 = 0.35; % Threshold On Edge Histogram PR = find(S > (T1*max(S))); % Candidate Plate Rows %% Masked Plate Msk = zeros(size(I)); Msk(PR,:) = 1; % Mask MB = Msk.*IS; % Candidate Plate (Edge Image) % figure();imshow(MB) %% Morphology (Dilation - Vertical) Dy = strel('rectangle',[80,4]); % Vertical Extension MBy = imdilate(MB,Dy); % By Dilation MBy = imfill(MBy,'holes'); % Fill Holes % figure();imshow(MBx) %% Morphology (Dilation - Horizontal) Dx = strel('rectangle',[4,80]); % Horizontal Extension MBx = imdilate(MB,Dx); % By Dilation MBx = imfill(MBx,'holes'); % Fill Holes % figure();imshow(MBy) %% Joint Places BIM = MBx.*MBy; % Joint Places % figure();imshow(BIM) %% Morphology (Dilation - Horizontal) Dy = strel('rectangle',[4,30]); % Horizontal Extension MM = imdilate(BIM,Dy); % By Dilation MM = imfill(MM,'holes'); % Fill Holes % figure();imshow(MM) %% Erosion Dr = strel('line',50,0); % Erosion BL = imerode(MM,Dr); % figure();imshow(BL) %% Find Biggest Binary Region (As a Plate Place) [L,num] = bwlabel(BL); % Label (Binary Regions) Areas = zeros(num,1); for i = 1:num % Compute Area Of Every Region [r,c,v] = find(L == i); % Find Indexes Areas(i) = sum(v); % Compute Area end [La,Lb] = find(Areas==max(Areas)); % Biggest Binary Region Index %% Post Processing [a,b] = find(L==La); % Find Biggest Binary Region (Plate) [nRow,nCol] = size(I); FM = zeros(nRow,nCol); % Smooth and Enlarge Plate Place T = 10; % Extend Plate Region By T Pixel jr = (min(a)-T :max(a)+T); jc = (min(b)-T :max(b)+T); jr = jr(jr >= 1 & jr <= nRow); jc = jc(jc >= 1 & jc <= nCol); FM(jr,jc) = 1; PL = FM.*I; % Detected Plate % figure();imshow(FM) % figure();imshow(PL) %% Plot imshow(Im); title('Detected Plate') hold on rectangle('Position',[min(jc),min(jr),max(jc)-min(jc),... max(jr)-min(jr)],'LineWidth',4,'EdgeColor','r') hold off
دانلود فایل های پروژه : کلیک کنید !
توضیحات اضافه پروژه شناسائی پلاک با متلب
پروژه شناسائی پلاک با متلب
آیا تا به حال تعجب کرده اید که چگونه یک سیستم ANPR (تشخیص خودکار شماره صفحه) به کار می رود؟ بگذارید مفهوم پشت آن را برای شما تعریف کنم ، دوربین سیستم ANPR تصویر صفحه پلاک خودرو را ضبط می کند و سپس تصویر از طریق تعداد زیادی الگوریتم پردازش می شود تا تبدیل عددی آلفا تصویر به قالب متن فراهم شود. سیستم ANPR در بسیاری از مکان ها مانند پمپ های بنزین ، مراکز خرید ، فرودگاه ها ، بزرگراه ها ، غرفه های عوارض ، هتل ها ، بیمارستان ها ، پارکینگ ها ، نقاط بازرسی و دفاع و نظامی و غیره استفاده می شود.
ابزارهای پردازش تصویر بسیاری برای تشخیص این شماره صفحه وجود دارد ، اما در اینجا در این آموزش ما از پردازش تصویر MATLAB استفاده خواهیم کرد تا شماره پلاک خودرو را در قالب متن بدست آوریم. اگر با MATLAB یا پردازش تصویر آشنایی دارید ، پروژه های متلب قبلی ما را بررسی کنید:
شروع کار با متلب: مقدمه ای سریع
شروع با پردازش تصویر با استفاده از متلب
اول ، اجازه دهید من شما را در مورد مفهومی که برای تشخیص صفحات شماره استفاده می کنیم ، مختصر بیان کنم. برای این پروژه سه برنامه یا پرونده ’.m وجود دارد.
مشاهده تمامی پروژه های متلب
آموزش تشخیص پلاک خودرو با MATLAB
قالب ایجاد (template_creation.m) – برای استفاده از تصاویر ذخیره شده از الفبایی و ذخیره آنها به عنوان یک الگوی جدید در حافظه MATLAB استفاده می شود.
تشخیص نامه (Letter_detection.m) – کاراکترها را از تصویر ورودی می خواند و بالاترین الفبای مربوط به همسان را پیدا می کند.
Plate Detection (Plate_detection.m) – تصویر را پردازش کرده و سپس برای شناسایی شماره با دو m-پرونده فوق تماس بگیرید.
اکنون ، ما در مورد نحوه رمزگذاری این فایلهای m و آنچه باید انجام دهید قبل از شروع کدنویسی یاد خواهیم گرفت. پس از گذراندن این آموزش ، می توانید تمام فایلهای کد و فیلم توضیح توضیحی در انتهای این پروژه را پیدا کنید.
ایجاد الگو
ابتدا یک پوشه برای پروژه ایجاد کنید (نام پوشه من Number Number Plate Detection است) برای ذخیره و ذخیره فایل ها. ما تصاویر باینری همه حروف و اعداد را در زیر پوشه ای به نام ‘alpha ذخیره کرده ایم.
اکنون ، مطابق تصویر زیر ، پنجره Editor را در MATLAB باز کنید ،
اگر با اصطلاحات اساسی متلب آشنایی ندارید ، پیشنهاد می کنم آموزش مرتبط را بررسی کنید.
حالا کد زیر را در پرونده template_creation.m کپی و جایگذاری کنید و پرونده را در پوشه پروژه (تشخیص شماره پلاک) ذخیره کنید. همه پرونده های مربوط به این پروژه از جمله پرونده های قالب تصویر را می توانید از اینجا بارگیری کنید. همچنین ویدیوی داده شده در پایان این پروژه را نیز بررسی کنید.
سلام – چطور میتونم این پرۆژە رو دانلود کنم چون با کلیک بر روی لینک دانلود ، ریدایرکت میکنە بە صفحەی دیگەای،
سلام. با تشکر از اطلاع رسانی شما لینک دانلود پروژه اصلاح شد.