السلام عليكم ورحمة الله وبركاته
لو سمحتو اريد أن اعرف كيف اقسم الصورة إلي مجموعة من (blocks) حجمه يكون 8*8
وكيف معرفة حجم الصورة ووضعها في صورة متساوية يعنى مثل 1024*1024
السلام عليكم ورحمة الله وبركاته
لو سمحتو اريد أن اعرف كيف اقسم الصورة إلي مجموعة من (blocks) حجمه يكون 8*8
وكيف معرفة حجم الصورة ووضعها في صورة متساوية يعنى مثل 1024*1024
السلام عليكم
ممكن توضيح السؤال اكثر… لكي نستطيع مساعدتك ان امكن
وشكرا
السلام عليكم
شكرا أخي على الرد
السؤال هو ان يكون عندى صورة ومندير عليها تحويل DCT
قبل ما اندير تحويل لازم يكون حجمها مساوي لبعضها
واريد ان اقسم الصورة إلي مجموعة من (Blocks)
يعنى ممكن اتكون الصورة حجمها 2024*1890
يعنى حجمها يكون 1024*1024 مثلا
وتقسم الي blocks
كل block يكون حجمه 8 *8
اتمنى ان تكون الصورة واضحة
السلام عليكم
شكرا أخي على الرد
السؤال هو ان يكون عندى صورة ومندير عليها تحويل DCT
قبل ما اندير تحويل لازم يكون حجمها مساوي لبعضها
واريد ان اقسم الصورة إلي مجموعة من (Blocks)
يعنى ممكن اتكون الصورة حجمها 2024*1890
يعنى حجمها يكون 1024*1024 مثلا
وتقسم الي blocks
كل block يكون حجمه 8 *8
اتمنى ان تكون الصورة واضحة
وعليكم السلام.
طيب الى فهمته انه عندك صورة بأبعاد غير متساوية, وتريد تحويل هذه الصورة الى ابعاد متساوية ومن ثم تحويلها الى blocks 8*8 . بس هل الصورة عبارة عن تنائية البعد او ثلاثية الابعاد ؟؟
لحل هذه المسألة:
الماتلاب يوفر لنا مجموعة دوال وهي
imread ويقوم بقراءة الصورة ومعرفة ابعادها
imresize ويقوم بتعديل حجم الصورة
mat2cell يقوم بتحويل الصورة الى مجموعة من blocks
الكود التالي يقوم بتحويل صورة بأبعاد 1200732 الى صورة بأبعاد 600600 ومن ثم يحول الى 8 blocks بأحجام متساوية 75*75
الكود والصورة في المرفقات…
clear all;
close all;
clc;
M=imread('Libyafree.jpg');
B=imresize(M,[600 600])
C = mat2cell(B(:,:,1),[75 75 75 75 75 75 75 75],[75 75 75 75 75 75 75 75]);
ملاحضة الكود فقط للبعد الاول وهو B (:,:,1(
موفق
السلام عليكم
بارك الله فيك أحي الكريم وجزاك الله كل خير ان شاء الله
أريد أن أسال سؤال آخر
وهو ان اعرف اكبر عنصر في كل block
وموقع هذا العنصر في كل block
وحفظه في ملف
السلام عليكم
بارك الله فيك أحي الكريم وجزاك الله كل خير ان شاء الله
أريد أن أسال سؤال آخر
وهو ان اعرف اكبر عنصر في كل block
وموقع هذا العنصر في كل block
وحفظه في ملف
السلام عليكم
الكود في الاسفل يقوم بايجاد اكبر عنصر في كل block ويخزنه في مصفوفة اسمها maxval يعني تصبح مصفوفة 8*8
ومكان اكبر عنصر في كل block يتم تخزينه في مصفوفتين row و col
يعني مكان العنصر عبارة عن (row,col)
clear all;
close all;
clc;
M=imread('Libyafree.jpg');
B=imresize(M,[600 600]);
C = mat2cell(B(:,:,1),[75 75 75 75 75 75 75 75],[75 75 75 75 75 75 75 75]);
for i=1:8
for j=1:8
[maxval(i,j) ind(i,j)]=max(C{i,j}(:));
[row(i,j) col(i,j)] = ind2sub(size(C{i,j}),ind(i,j));
end
end
maxval
row
col
ملاحضة: قمت فقط بأضافة عدد 2 لوب واستخدام دالتين هما max لايجاد اكبر عنصر , ودالة in2sub لايجاد مكان تلك العنصر.
موفق
السلام عليكم
شكرا أخي الكريم
بصراحة ما فهمت آلية عمل الكود بالضبط
يا ريت توضحلى الكود أكثر
وعليكم السلام.
لم تفهم النتائج او لم تفهم الكود ؟
بالنسبة للنتائج هي
مصفوفة maxval وتحتوي علي اكبر عنصر لكل blocks
المصفوفتين row و col يحددان مكان اكبر عنصر في كل block
الامر بسيط جدا.
اما بالنسبة للكود: فقد قمت بأضافة عدد 2 loops
i=1:8 و j=1:8 لان ابعاد الصورة الجديدة مقسمة الى 8*8 blocks
وبداخل هذه ال loops
دالة max لحساب اكبر عنصر في كل block
ودالة ind2sub وتقوم بتحديد مكان ذلك العنصر
لفهم كيفية استخدام الدوال , فقط اذهب الى الماتلاب command window واكتب help ثم فراغ ثم اسم الدالة واضغط انتر.
الامر واضح جدا وسهل
موفق
السلام عليكم
شكرا أخي الكريم وأعتذر عن التأخير في الرد
شكرا مرة تانية على الشرح لقد فهمت الكود
ولكنك قمت بوضع اكبر عنصر في كل Block في مصفوفة جديدة
وأنا لا أريد هذه الخطوة أريد الإحتفاظ بيه في المصفوفة الأصلية والإحتفاظ بموقعه في المصفوفة الأصلية
لقد وضحت لي الفكرة وقمت بتطبيقها كما أريد وشكرا على مساعدتك
ولكن أريد منك أن تساعدنى كيف اقوم بحفظ العناصر ومواقعها في ملف Excel
وعليكم السلام
لحفظ البيانات في ملف اكسل .
اضف فقط الجملة التالية للكود
xlswrite('yourfilename.xls',maxval)
وستجد ملف اكسل يحتوي علي بيانات المصفوفة maxval بأسم yourfilename في المجلد الحالي
موفق
السلام عليكم أخي الكريم
شكرا على الرد
أريد معرفة كيف يمكن استدعاء هذا الملف وكيف يمكن تخزين الملف في مجلد ثاني
وشكرا
السلام عليكم
إذا عندي صورتين حجمهم مختلف وأريد اجري عليهم عمليات رياضيه الجمع والطرح…بالماتلاب
لازم اساوي حجم الصورتين
كيف يتم ذلك ؟.