ebook archive
Login Form
آمار کلی
بازدیدکنندگان : 1494738Who's Online
ما 33 مهمان آنلاین داریمآخرين ارسالهاي تالار
-
- مقایسه چند برنامه در متلب
- 31 دقيقه پيش
-
- حرکت یک شی بر روی یک منحنی
- 2 ساعت, 57 دقيقه پيش
-
- چگونگی ساخت فایل exe در متلب
- 13 ساعت, 26 دقيقه پيش
-
- دستور مطلب
- 14 ساعت, 22 دقيقه پيش
-
- سوال: حاصل معادله Ax2+Bx+C با استفاده از متلب
- 14 ساعت, 25 دقيقه پيش
| پیدا کردن تعداد object ها در تصویر |
|
|
|
| نوشته شده توسط admin |
| یکشنبه, 25 دی 1390 ساعت 19:40 |
|
پیدا کردن تعداد objects تصویر در نرم افزار MATLAB این برنامه تنها در صورتی درست کار می کند که پشت زمینه آن تیره باشد مثلا یک صفحه مشکی با چند شکل هندسی قسمت اول : تصویر را در مطلب لود می کند و نمایش می دهد. قسمت دوم : rgb2gray تصویر را سیاه و سفید می کند . Thresholdمرزها را مشخص می کند ، که برای این کار باید از تابع graythresh استفاده کرد .im2bw تصویر را باینری می کند. قسمت سوم : نویز تصویر را از بین می برد . bwareaopen پیکسل های کمتر از 30 را پاک می کند و فواصل خالی (Gap) را با تابع strel پر می کند strel('disk',2) یک دایره به شعاع 2 تشکیل می دهد که شعاع عددی غیر منفی باید باشد و عدد وسط آن دایره را انتخاب می کند . imfill چاله ها را پر می کند و مرزها را مشخص می کند هر محدوده بسته را باholesنامگذاری می کند . قسمت چهارم : محدوده ها را پیدا می کند مناطق مرزی را دنبال می کند و تعداد آنها را نشان می دهد . با گذاشتن noholes باعث می شود پردازش سریع تر شود label2rgb تصویر را رنگی می کند. در انتها تعداد اشکال موجود در متغیر Count قرار می گیرد . کد برنامه:
RGB = imread('d:\test4.jpg'); 1 figure , imshow(RGB) ,title('Orginal image')
I = rgb2gray(RGB); 2 threshold = graythresh(I); bw = im2bw(I,threshold); imshow(bw) , title('threshold image') 3 bw = bwareaopen(bw,30); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); figure , imshow(bw) , title('fill image') [B,L] = bwboundaries(bw,'noholes'); 4 Count=length(B) figure , imshow(label2rgb(L)),title('RGB')
منبع : http://programmer.blogsky.com |
| آخرین بروز رسانی در دوشنبه, 26 دی 1390 ساعت 22:05 |






