آخرين ارسالهاي تالار

خطا: mod_kunenalatest:كيوننا نسخه 1.7 (يا بالاتر) بر روي سيستم شما نصب نيست!
پیغام
  • Kunena is not installed or the installed Kunena version is not supported. The plug-in has now been disabled. Please install/upgrade Kunena to version 1.7 for the Kunena Discuss Plug-in to function properly.
پیدا کردن تعداد object ها در تصویر مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط admin   
یکشنبه, 25 دی 1390 ساعت 23:10

پیدا کردن تعداد 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

نظر ها (6)
  • kimeh  - smile detection
    برای الگوهای تشخیص لبخند به وسیله ی پردازش تصویر کد میخواستم هر کدوم باشه فرق نمی کنه.... میتونید بران بفرستید
  • delara  - komak
    salam
    agar bekham in pardazesh tasvir ro ba narm afzare R yad begiram chikar bayad bokonam??mamnon misham javabamo behem mail konid
  • جواد  - im2bw
    چرا bw = im2bw(I,threshold);
    دو مقدار گرفته؟
  • محسن  - سؤال اضطراری
    در یک تصویر با فورمت.
    Tiffچطور میشه یک قسمت رو برجسته کرد یعنی یا مثلن تو یک تصویر سی تى اسکن ضایعه
    یا یک رگ رو برجسته کرد.
    اگه زود پاسخ بدین ممنون میشم.
  • mehrnaz.s
    سلام من مبتدی هستم در برنامه متلب و باید تصویر رگ دست را پردازش کنم. می خواستم بپرسم شما در تابع SE مقدار 2 را بر چه مبنایی گذاشتین؟؟ و اگر بخوام از پارامتر line استفاده کنم چه طور باید مقادیر همسایگی و زاویه اش را محاسبه کنم؟؟
  • zahrae70
    با سلام
    برای مشخص کردن طول برنج در تصویر و حذف قسمتی از تصویر که دارای طول کمتر از xهستند از چه دستوری باید استفاده کنم و چگونه؟
    با تشکر
تنها کاربران عضو شده می توانند نظر ارسال کنند!
آخرین بروز رسانی در سه شنبه, 27 دی 1390 ساعت 01:35
 
logo-samandehi