السلام عليكم…كيف الحال؟؟ اذا ممكن احد يساعدني في مشروعي؟؟؟ احتاج الى كود يقسم الصورة الى
( blocks(8*8
[CENTER]وعليكم السلام
حسنا
بما انك لم تعط اي معلومات حول نوع الصورة وخصائصها الهندسية
بفرض ان :
ابعاد الصورة الاصلية “طول وعرض” من مضاعفات 8
وبفرض صورة JPEG مثل هذه :
هذا الكود ممكن يساعدك
clear all
clc
Image=rgb2gray(imread('essai.jpg'));
[m n]=size(Image);
Nbrx = floor(m./8);
Nbry = floor(n./8);
Nd=1;
for i=1:Nbrx
for j=1:Nbry
Mat=Image((i-1)*8+1:i*8,(j-1)*8+1:j*8);
subplot(Nbrx,Nbry,Nd);
imshow(Mat)
Nd=Nd+1;
end
end
والنتيجة تكون
لكن لا ينصح ياظهار جميع الصور “لان هذا يتطلب وقت حساب كبير من ماتلاب”
لذلك يفضل نزع الجزء الخاص باظهار الصور
والكود يكون
clear all
clc
Image=rgb2gray(imread('essai.jpg'));
[m n]=size(Image);
Nbrx = floor(m./8);
Nbry = floor(n./8);
Nd=1;
for i=1:Nbrx
for j=1:Nbry
Mat(Nd,:,:)=Image((i-1)*8+1:i*8,(j-1)*8+1:j*8);
Nd=Nd+1;
end
end
والاجزاء تكون في المصفوفة Mat
Mat(X,:,:)
تعني الجزء رقم X
هذا الكود يعتبر “ثقيلا” بالنسبة للزمن الذي يستهلكه، وبسيط ومباشر
يمكن تغيير الكثير فيه واختصاره
[/center]