پروژه قطعه بندی watershed در متلب

پروژه قطعه بندی watershed در متلب
5 (100%) 1 vote

پروژه قطعه بندی watershed در متلب 

واترشد یا Watershed به معنای حوزه آبخیز ، حوزه آبخیز عرصه ‌ای می باشد که روان آب ناشی از بارش بر روی آن به وسیله آبراهه ‌ها، جمع ‌آوری شده و به یک خروجی مانند رود خانه، آب انباشت، تالاب، دریاچه و دریا هدایت می ‌شود. به عبارتی دیگر حوزه آبخیز همه ی سطحی را در بر می ‌گیرد که آب ‌های سطحی در آن منطقه به طرف نقطه یا محل مشخصی در جریان است.
الگوریتم Watershed ، نیز از این مفهوم استفاده می کند، یعنی الگوریتم واترشد با استفاده از شدت تصاویر در مختصات مختلف حوزه های آبخیز و مرکز ان یعنی حوزه ابریز را مشخص می کند، یعنی نقاطی از تصویر که شدت بالاتری داشته باشند، به عنوان حوزه ابخیز و نقاطی از تصویر که شدت کمتری داشته باشند حوزه ابریز را تشکیل می دهند.
اغلب از گرادیان به عنوان یک پیش پردازش بر روی تصاویر مقیاس gray و قبل از اعمال تبدیل watershed روی آنها استفاده می¬شود.اندازه گرادیان یک تصویر در پیکسل های مربوط به لبه های شی دارای بیشترین مقدار است بنابراین میتوان از ان در راستای یافتن تبدیل WATERSHED  استفاده نمود.
ابزاری که معمولا در کنار این تبدیل استفاده میشود فاصله است.


کد برنامه


center1 = -10
center2 = -center1
dist = sqrt(2*(2*center1)^2)
radius = dist/2 * 1.4
lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)]
[x,y] = meshgrid(lims(1):lims(2))
bw1 = sqrt((x-center1).^2 + (y-center1).^2) <= radius
bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius
bw = bw1 | bw2
figure
imshow(bw,'InitialMagnification','fit'), title('bw')
D = bwdist(~bw)
figure
imshow(D,[],'InitialMagnification','fit')
title('Distance transform of ~bw')
D = -D
D(~bw) = -Inf
L = watershed(D
rgb = label2rgb(L,'jet',[.5 .5 .5])
figure
imshow(rgb,'InitialMagnification','fit'
title('Watershed transform of D'