ورود

View Full Version : مبتدی: bwtraceboundary



farhaneh
جمعه 10 اردیبهشت 1389, 17:36 عصر
سلام. همون طور که میدونیم دستوری که تو عنوان نوشتم مربوط میشه به استخراج مرز یه شی یا حفره با این شرط که ما نقطه شروع شی رو داشته باشیم. کد زیر یه مثال در این مورده. لطف کنید توضیح بدید چطور نقطه شروع رو بدست آورده. منظورم خطوط 5، 6، 7 و آخره. مرسی.

I = imread('coins.png');
imshow(I)
BW = im2bw(I);
imshow(BW)
dim = size(BW)
col = round(dim(2)/2)-90;
row = min(find(BW(:,col)))
boundary = bwtraceboundary(BW,[row, col],'N');
imshow(I)
hold on;
plot(boundary(:,2),boundary(:,1),'g','LineWidth',3 );

مصطفی ساتکی
شنبه 11 اردیبهشت 1389, 00:20 صبح
5= dim = size(BW) این خط ابعاد تصویر رو به صورت سطر و ستون به ما میده


col = round(dim(2)/2)-90; این خط منطق خاصی نداره به صورت دلخواه تعداد ستون تقسیم بر 2 منهای 90

row = min(find(BW(:,col))) این خط هم میگه در ستون بدست آمده بالا محل(سطر) عنصر غیر صفر رو به ما بده که از هم کوچکتر.
اون الگوریتم bwtraceboundry هم که از همه آسونتر تو هشت خونه مجاور هر پیکسل دونبال پیکسل همسایه می گرده تا دنبالش کنه