تحويل الصور الى binary


(mooooody90) #1

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

وشكرا


(Ahmed) #2

[CENTER]يكفيك ان تستخدم
im2bw

طريقة عملها، وفي شكلها البسيط، انها تقارن مستوى الالوان بالنسبة للحد الذي تفرضه انت
فاذا كانت اكبر من الحد تصبح 1
اصغر، تصبح 0

Binary_Im=im2bw(Image, level);

تعطيك صورة ثنائية
بحيث level هو حد المقارنة الذي تحدده انت

مثلا

Binary_Im=im2bw(Image, graythresh(Image));

تعطيك صورة ثنائية binary
graythresh تحدد اوتوماتيكيا حد المقارنة باستخدام طريقة Otsu
[/center]


(mooooody90) #3

شكرا اخي على ردك ولكن على اي اساس ممكن اني احدد level وياريت لو عندك مثال تضعه لتسهيل الفهم


(Ahmed) #4

[CENTER]على اساس التطبيق
او على اساس احتياجك

قيم level تتراوح بين 0 و 1
يعني 0 هو الاسود و 1 هو الابيض

لو لم تحددها سيستخدم ماتلاب
0.5

رياضيا هناك العديد من الطرق لحساب هذا المستوى
كطريقة Otsu التي ذكرتها
وهي تعتمد على علاقات وكثافة الالوان ومستوياتها
وهي مفصلة في هذا المقال
A Threshold Selection Method from Gray-Level Histograms

مثلا

clear all
clc
close all

I = imread('coins.png');
% level = graythresh(I);
imshow(I)
figure
BW = im2bw(I,0.9);
imshow(BW)
figure
BW = im2bw(I,0.3);
imshow(BW)
figure
BW = im2bw(I,graythresh(I));
imshow(BW)

النتيجة

الصورة الاصلية

صورة ثنائية بمستوى 0.9

صورة ثنائية بمستوى 0.3

صورة ثنائية بمستوى Otsu

نلاحظ ان هذه الاخيرة هي اكثر واحدة حافظت على تفاصيل الصورة الاصلية
[/center]


(mooooody90) #5

الله يعطيك الف عافيه واضح جدا


(mooooody90) #6

اخي DzArticles
هل ممكن عرض الصوره بعد التحويل ؟
وممكن بعد تحويل صورتين الى binary المقارنه بينهما واستخراج الفرق في صوره اخرى؟؟


(Ahmed) #7

[CENTER]اذا تقصد “بعرض” الصورة رسمها فتستطيع استخدام

imshow(BW)

كما فعلت في الكود السابق

اما للمقارنة بين الصور
اظن انك تعرف ان الصور المحولة الى binary هي عبارة عن مصفوفات قيمها 1 و 0 فقط

فللمقارنة بين صورتين تطرح المصفوفتين

لكن:
يجب ان تكون المصفوفات من نفس الابعاد

ايضا
قد تتحصل على قيم سالبة وهو مايتنافى مع مفهوم النظام binary

لذلك لو تقل لي هدفك من المقارنة ممكن اعطيك فكرة اخرى

[/center]


(mooooody90) #8

تسلم ياغالي هدفي هو التقاط صوره من الكمره وتكون الصوره هذه الصوره الاساسيه ومن ثمه التقاط صوره ثانيه لنفس المكان يعني الصورتين سوف يكونو نفس الحجم ونفس المكان في حال مثلا وضعنا كره في الصوره الثانيه فئنها ستحدث فرقا وهذا الفرق المطلوب


(Ahmed) #9

الاخ الكريم لا اظن ان المقارنة بين صورتين ثنائيتين ستطعيك اي معلومات
يعني اصلا لما تحولها الى النظام الثنائي انت افقدتها اغلب المعلومات التي تحويها.
حسنا، لماذا اصلا تحولها الى النظام الثنائي ؟

(mooooody90) #10

عزيزي لانني اريد فقط معرفه الفرق في الدخان وهذا مبدأ عمل مشروعي التخرج اذا كان هناك فارق كبير في الصوره فآنه لا يصدر اي انذا واذا كان الفارق صغيرا فسوف يعطيني انذار


(Ahmed) #11

[CENTER]حسنا الاخ

الامر ليس بسيطا لكنه ليس صعبا ايضا

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

ساعطيك امثلة للخطوط العريضة:

مثلا تريد المقارنة بين صورتين لمتحرك ما
يعني ان زاوية التصوير ثابتة، وهناك متحرك تحرك في الصورة
يعني انطلاقا من ان :
الصور من نفس النوع والابعاد
زاوية التصوير ثابتة

تستطيع المقارنة بين التغيرات التي حدثت في مستوى الالوان وذلك عبر كل صف من البيكسلات :

فلو كان التحرك في مستوى بعد واحد كان الامر بديهي وجد سهل
وتقارن فقط 2 Vectors وتحسب التغير فقط في المنطقة المحددة بالاحمر مثلا

ولو كان التغير على بعدين تصبح هناك الكثير من المقارنات على البعدين

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


اما بالنسبة للمقارنة بين صورتين مختلفتين فالامر يصعب قليلا
وفي ابسط انواع المقارنة
يجب عليك ان تحسب ما يسمى
correlation index
اي “مؤشر الترابط” بين الصور

فمثلا لما نقارن 10 صور بصورة واحدة للبحث عن اقرب الصور لها
نحسب هذا المؤشر والصورة التي توافق اكبر مؤشر هي الاقرب الى الصورة الاصلية

لكن هذه الطريقة تبقى محدودة
لانها لا تعطينا معلومات حول “نوع الفرق بين الصور” بل فقط تخبرنا انه يوجد فرق

موفق
هذا ببساطة

[/center]


(mooooody90) #12

عزيزي انو من النوع الاول وكما تفضلت هي فقط تغير في المكان مثلا او لم تكن موجوده من قبل في الصوره الاولى وفي الثانيه ظهرت وربما تكون اسهل لو قسمت الصوره على فرض الى 8 اجزاء والمقارنه على هذا الاساس ولكن ممكن ان تضيف مثال او كود للطريقه وشكرا


(Ahmed) #13

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

فلو تعطنا بعض الصور التي تريد مقارنتها سيكون الامر اسهل للنقاش
وان شاء الله نقدر نساعدك
[/center]


(system) #14

جزاكم الله خير نقاشكم في هذا الموضوع نفعني في مشروع لي


(system) #15

:a02: