دورات هندسية

 

 

shape recognition

النتائج 1 إلى 2 من 2
  1. [1]
    الصورة الرمزية التفاح الاخضر
    التفاح الاخضر
    التفاح الاخضر غير متواجد حالياً

    عضو فعال

    تاريخ التسجيل: Sep 2008
    المشاركات: 95
    Thumbs Up
    Received: 0
    Given: 0

    shape recognition

    اخواني الاعزاء اتمنى منكم ان ترو هذا الكود وراح تلاقو الصورة مرفقة في المرفقات
    function W = Classify(RGB)
    % Step 1: Read image Read in
    RGB = imread('test.bmp');
    figure,
    imshow(RGB),
    title('Original Image');
    % Step 2: Convert image from rgb to gray
    GRAY = rgb2gray(RGB);
    figure,
    imshow(GRAY),
    title('Gray Image');
    % Step 3: Threshold the image Convert the image to black and white in order
    % to prepare for boundary tracing using bwboundaries.
    threshold = graythresh(GRAY);
    BW = im2bw(GRAY, threshold);
    figure,
    imshow(BW),
    title('Binary Image');
    % Step 4: Invert the Binary Image
    BW = ~ BW;
    figure,
    imshow(BW),
    title('Inverted Binary Image');
    % Step 5: Find the boundaries Concentrate only on the exterior boundaries.
    % Option 'noholes' will accelerate the processing by preventing
    % bwboundaries from searching for inner contours.
    [B,L] = bwboundaries(BW, 'noholes');
    % Step 6: Determine objects properties
    STATS = regionprops(L, 'all'); % we need 'BoundingBox' and 'Extent'
    % Step 7: Classify Shapes according to properties
    % Square = 3 = (1 + 2) = (X=Y + Extent = 1)
    % Rectangular = 2 = (0 + 2) = (only Extent = 1)
    % Circle = 1 = (1 + 0) = (X=Y , Extent < 1)
    % UNKNOWN = 0
    figure,
    imshow(RGB),
    title('Results');
    hold on
    for i = 1 : length(STATS)
    W(i) = uint8(abs(STATS(i).BoundingBox(3)-STATS(i).BoundingBox(4)) < 0.1);
    W(i) = W(i) + 2 * uint8((STATS(i).Extent - 1) == 0 );
    centroid = STATS(i).Centroid;
    switch W(i)
    case 1
    plot(centroid(1),centroid(2),'wO');
    case 2
    plot(centroid(1),centroid(2),'wX');
    case 3
    plot(centroid(1),centroid(2),'wS');
    end
    end
    return

    كل الل ي اطلبه من اخواني بالمنتدى هو شرح هالجزء
    for i = 1 : length(STATS)
    W(i) = uint8(abs(STATS(i).BoundingBox(3)-STATS(i).BoundingBox(4)) < 0.1);
    W(i) = W(i) + 2 * uint8((STATS(i).Extent - 1) == 0 );
    centroid = STATS(i).Centroid;
    switch W(i)
    case 1
    plot(centroid(1),centroid(2),'wO');
    case 2
    plot(centroid(1),centroid(2),'wX');
    case 3
    plot(centroid(1),centroid(2),'wS');
    end
    end
    return

    يعني على اي اساس تم تصنيف الاشكال او ماهو شرح هذه الشروط الموجودة داخل الفور

    ولكم مني جزيل الشكر

    من مواضيع التفاح الاخضر :


    0 Not allowed!


    الصور المرفقة
    • نوع الملف: bmp test.bmp‏ (398.5 كيلوبايت, 46 مشاهدات)
    التعديل الأخير تم بواسطة التفاح الاخضر ; 2008-10-19 الساعة 11:07 PM
    رجوتك ياإلهي يامن رفع السماء
    اجب لي دعائي وتقبل مني رجائي
    ِ ــــــــــــــــــــــــــــــــــــــــــــــــ

  2. [2]
    khoklland007
    khoklland007 غير متواجد حالياً
    عضو فعال جداً


    تاريخ التسجيل: Apr 2009
    المشاركات: 240
    Thumbs Up
    Received: 1
    Given: 0
    shkrun
    shkrun
    shkrun
    shkrun
    shkrun

    0 Not allowed!



  
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML