تقسیم بندی تصاویر
ShahBaz | يكشنبه, ۲۸ تیر ۱۳۹۴، ۱۲:۲۷ ق.ظ
امیدوارم این روش به کارتون بیاد,البته فکر کنم روشباسلام
چگونه می تونم این تصویر را به هر روشی که مناسب میدانید تقطیع کنم و بعد از برچسب گذاری اجزا، سعی کنم با استخراج ویژگیهای مناسب از تصویر باینری، دایره ها، مربع ها و مثلث ها را از یکدیگر جدا کنم و محل هر یک را مشخص کنم.
باتشکرمهمان عزیز شما حق دیدن لینک ها را نداریدعضویتK-meansهم به کارتون بیاد
مرحله اول: خواندن تصویرمرحله دوم : تشخیص سلول های تصویرکد:I = imread('pic.tif'); figure, imshow(I), title('original image'); text(size(I,2),size(I,1)+15, ... 'Image courtesy of Alan Partin', ... 'FontSize',7,'HorizontalAlignment','right'); text(size(I,2),size(I,1)+25, .... 'Johns Hopkins University', ... 'FontSize',7,'HorizontalAlignment','right');مرحله سوم:منبسط کردن تصویرکد:[~, threshold] = edge(I, 'sobel'); fudgeFactor = .5; BWs = edge(I,'sobel', threshold * fudgeFactor); figure, imshow(BWs), title('binary gradient mask');کد:se90 = strel('line', 3, 90); se0 = strel('line', 3, 0);مرحله چهارم : پر کردن شکاف های داخلیکد:BWsdil = imdilate(BWs, [se90 se0]); figure, imshow(BWsdil), title('dilated gradient mask');مرحله پنجم:حذف لبه هاکد:BWdfill = imfill(BWsdil, 'holes'); figure, imshow(BWdfill); title('binary image with filled holes');مرحله ششم:صاف کردن تصویرکد:BWnobord = imclearborder(BWdfill, 4); figure, imshow(BWnobord), title('cleared border image');و در آخرکد:seD = strel('diamond',1); BWfinal = imerode(BWnobord,seD); BWfinal = imerode(BWfinal,seD); figure, imshow(BWfinal), title('segmented image');کد:BWoutline = bwperim(BWfinal); Segout = I; Segout(BWoutline) = 255; figure, imshow(Segout), title('outlined original image');