Image proccessing question


(Ibtesam) #1

السلام عليكم ورحمة الله وبركاته

أولا أنا عضوة جديدة في هذا المنتدى. وأرجو منكم المساعدة في برمجة الماتلاب
أنا مبتدئة في هذه اللغة والكثير مدح لي الماتلاب في الإمج بروسيسسنق.

سؤالي هو لدي مشروع في مادة الإمج بروسيسسنق. الأستاذة تقول سهل ولكن لجهلي في الماتلاب أراه صعب جدا لذلك أعينوني أعانكم الله
الأستاذه أعطتنا الألغورثم ومطلوب منا البرمجة بالماتلاب

لدي مجموعة صور أريد عمل فيتشر إكستراكشن لها. أولا الصور لاتحتاج لإزالة الـ
noise حسب الألغورثم المعطى, ثم عمل edge detection بعد البحث وجدت أن canny edge detector هو أفضل من Roberts, Prewitt, and Sobel
بعد ذلك سأجد مركز الشكل ومن ثم رسم دئرة مركزها هو المركز الذي تم إيجادة مسبقا ونصف قطرها هو أبعد نقطة في الbinary edge map الناتجة من ال canny
ثم نثبت هذه الدائرة حسب نصف القطر. آخر خطوة هي
transform all the pixels within the
circular image from the Cartesian coordinates system into the polar coordinates
system

هذه المرحلة الأولى وبعدها حبدأ في المرحلة الثانية سأذكرها فيما بعد.

سؤالي هل يوجد built in method في الماتلاب تساعدني لبرمجة الألغورثم السابق؟؟
وماهو ال Cartesian coordinates system
و ال
polar coordinates system

كيف أحول من الأول للثاني؟؟
أيضا كيف أستطيع تحديد أبعد نقطة في ال binary edge map لتحديد نصف قطر الدائرة؟؟

أرجوكم لاتبخلوا علي بعلمكم. وجزاكم الله عني خير الجزاء


#2

الموضوع سهل ولكن يجب عليكى قراءة التول بوكس جيدا وسأعطيى الان بعض التنويهات التى قد تساعدك
اولا عمل edge detection
يمكنك عملها باستخدام الامر الاتى

>>Ie=edge(I,’canny’);

ويمكنك ايجاد مركز الشكل عن طريق الاتى

>>regionprops(L, properties)

Cartesian coordinates system
هو نظام احدثيات لتحديد اى نقطة فى الفراغ بمعلومية ثلاثة قيم لمحاور X,Y,Z

اما polar coordinates system هو نظام احدثيات حيث اى نقطة تكون محددة بثلاثة قيم هى بعدها عن نقطة الاقل r والزاوية theta وال Z

وللتحويل بينهم
X = r . cos theta
Y = r . sin theta
Z كما هى

ولتحديد أبعد نقطة انا بقترح ولا اعلم اذا كان صحيح حيث اننى مش متاكد من هذه الموضوع
ممكن تعملى الامر الاتى

width =stats (i).BoundingBox(3);

دا هيحسب عرض المربع فى منطقة محددة لو افترضنا ان مركز ثقل هذه المنطقة او المربع عموما بيكون فى النص
فنقدر نقول ان نصف القطر الدائرة هو نصف عرض المربع BoundingBox


(Ibtesam) #3

جزاك الله خير أخي الكريم
المعذرة فقد انشغلت مع الامتحانات. هل ممكن ترشدني لكتاب أو موقع من خلاله يمكن أن أتعلم الماتلاب في مجال الإمج بروسسنج

أكرر شكري وفائق احترامي


#4

افضل شيىء من وجهة نظرى الهيلب الخاص بالتول بوكس


(Ibtesam) #5

هل االـ polar coordinates system هو الهستوغرام؟؟
مافهمت البولار؟؟ ياريت توضح
جزاك الله خير


#6

ال polar coordinates system هو نظام احدثيات

والهستوجرام هو العلاقة بين قيم البيكسل على المحور X والتى تكون من صفر الى 255 فى الصورة الرمادية
وعدد البيكسلات الموجودة بهدة القيمة على المحور Y


(Ibtesam) #7

جزاك الله أخي الفاضل

الآن أنا فهمت البولار والكارتيزيان وعرفت كيف أحول من الأول للثاني والعكس حيث يوجد فنكشن جاهزة بالماتلاب تؤدي هذه المهمة

(THETA,RHO] = cart2pol(X,Y]
(X,Y] = pol2cart(THETA,RHO]

المشكلة عندي الآن مو عافة كيف أحول الصورة لقيم (x,y)
أنا فاهمة كيف تتعمل بس مو عارفة كيف أصيغها بالماتلاب

قرأت الصورة
;('myImage=imread('myImage
حسبت مقاس الصورة
;(rows columns] = size(myImage]
الأن row فيه عرض الصورة و columns فيه طولها يعني عدد الصوف والأعمدة
بعد ماحسبت هذه الحسبة راح أعمل 2 for loops
وحدة تمشي ع الصفوف والثانية ع الأعمدة يعني (x,y) اللي أنا أبغاهم

ياليت تساعدوني كيف أحصل على الكارتيزين كوردينيت للصورة وكيف أخزن القيم عشان أقدر أحول لبولار كوردينيت لازم قبلها أحول لكارتيزين

جزاكم الله خير


#8

عندما يتم قراءة الصورة فى الماتلاب فانها تكون فى صورة مصفوفة تحتوى على القيم (x,y)


(Ibtesam) #9

نعم يأخي أعلم ذلك ولكن لمن أطبع الماتركس تظهر لي القيمة المخزنة في الـ cell
أنا بعرف إنو الصفوف والأعمدة هيه تمثل (x,y)
بس مو عارفة كيف أوجدها؟؟ ممكن أكون فاهمة غلط. ياليت توضح وإذا عندك الطريقة ياليت تشرحها
أنا الآن في مرحلة التحويل من Cartesian إلى Polar
عرفت كيف أحول من الأول للثاني. بس كيف أوجد الأول يعني الكارتيزين

جزاك الله خير


(المهندس سعود) #10

لو سمحتولي

اتدخل
لمعرفه الاكس والواي يجب ان تفرضي نقطه معينه هي نقطة الاصل و تصبح هي المرجع للقياسات

للتوضيح اكثر ااعتبري ان عندي صورة ما مكونه من 20 بكسل بالطول و10 بكسلز بالعرض

ولنفرض ان البسكل الخامسه من اليمين والثالثه من الا على هي نقطة الاصل
بذلك يصبح الشكل يمتد على محور السينات (العرضي) من( 5) ال(4-) ومحور الصادات يمتد من (2)الى (17-)


(المهندس سعود) #11

اتمنى ان تكون الصوره واضحه


(المهندس سعود) #12

اما بالنسبه للبولار كوردينيتز
فأنه وبعد التحويل حسب القوانين المذكورة الى الاحداثي القطبي(البولار)
تصبح القيمه (ار) تمثل بعد اي نقطة عن نقطة الاصل
والقيمة (ثيتا) هي الزاويه بين محور السينات الموجب والخط الواصل بين النقطه ونقطة الاصل


(المهندس سعود) #13

اتمنى مرة اخرى ان تكون الصورة واضحه الان