رفتن به مطلب

ارسال های توصیه شده

سلام دوستان

من قصد دارم الگوریتم های لبه یابی رو آموزش بدم

هر کسی مطلب یا مقاله ای در این زمینه داره که میدونه برای بقیه مفیده همینجا بزاره تا با هم پیاده سازیش رو انجام بدیم

 

من در ابتدا یکی از مشهور ترین الگوریتم های لبه یابی رو شروع میکنم.

در ابتدا اصلا لبه یابی چی هست؟

لبه فرآیندی برای تشخیص و مکان یابی کردن نقاطی است که در آن مناطق مقدار پیکسل ها دارای شدت ناگهانی هستند مثلا یه پیکسل 255 و پیکسل دیگر 0 .

 

ما برای هر پیکسل هشت همسایه درنظر می گیریم

تفاضل پیکسل مرکزی را با این هشت همسایه بدست می آوریم

و ماکزیمم تفاضل رو با حد آستانه ای که مشخص کردیم مقایسه می کنیم اگر این مقدار از حد آستانه بیشتر بود مقدار ماکزیمم رو در پیکسل مرکزی قرار می دهیم ولی اگر کوچکتر یا مساوی حد آستانه بود مقدار پیکسل مرکزی را صفر می کنیم این روال برای تمام پیکسل های تصویر اعمال می شود. یادتون باشه که این جایگذاری باید در یک ماتریس مجزا قرار بگیرد.

 

کد این مطلب رو من پیوست کردم میتونید استفاده کنید

البته در ادامه آموزش الگوریتم های دیگری مثل sobel,robrts,perwitt و .... نیز گفته می شود:

im=imread('lenna.png');
im1=rgb2gray(im);
[h w]=size(im1);
imgray=uint8(zeros(h+2,w+2));
imEdge=zeros(h+2,w+2);
[h w]=size(imgray);
for i=2:h-1
   for j=2:w-1
       imgray(i,j)=uint8(im1(i-1,j-1));
   end
end
% imgray(2:h-1,2:w-1)=im1(1:h-2,1:w-2);
threshold=70;
maxPixel=0;
for i=2:h-1
   for j=2:w-1
       pixel(1,1)=abs(imgray(i,j)-imgray(i-1,j-1));
       pixel(1,2)=abs(imgray(i,j)-imgray(i-1,j));
       pixel(1,3)=abs(imgray(i,j)-imgray(i-1,j+1));
       pixel(1,4)=abs(imgray(i,j)-imgray(i,j-1));
       pixel(1,5)=abs(imgray(i,j)-imgray(i,j+1));
       pixel(1,6)=abs(imgray(i,j)-imgray(i+1,j-1));
       pixel(1,7)=abs(imgray(i,j)-imgray(i+1,j));
       pixel(1,8)=abs(imgray(i,j)-imgray(i+1,j+1));
       if(max(pixel)>threshold)
           imEdge(i,j)=max(pixel);
       else
           imEdge(i,j)=0;
       end
   end
end
imshow(im);
figure;
imshow(imgray);
figure;
imshow(imEdge);

Lenna.jpg

EdgeDetecton.rar

لینک به دیدگاه
  • 7 ماه بعد...

در مورد لبه یابی از سیستم فازی هم استفده میکنند

برای عنبیه میگن از لبه یاب canny استفاده بشه

یک اینکه چرا ؟

و تفاوت انواع لبه یاب ها درچیه ؟

 

و مهمتر اینکه مثلا میشه یه لبه یاب فازی طراحی کرد که لبه های چشم و شناسایی کنه ؟ یعنی هرجا که شبیه چشم گردی و کناره های چشم داشت اونو باقی بزاره تو تصویر ؟ ( لبه یابی کنه ؟ )

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...