تقسيم الصورة الى مربعات حجم كل منها 4*4


(system) #1

السلام عليكم ورحمة الله
كيف يمكن تقسيم اي صورة عندي الى مربعات وحجم كل مربع 44
بحيت اريد التعامل مع كل مربع على حدا مع العلم ان الصورة رمادية (gray)
عندما استخدمت الكود الاتي تحصلت على اول مربع فقط كيف احصل على مربعات الصورة ككل متلا لدي صورة دات حجم 40
32 سوف احصل على 80 مربع كيف يمكن فعل دالك
for x=1:r
for y=1:c
a1=a(1:4,1:4);
end
end


(Ahmed) #2

وعليكم السلام

اذا المربعات لا تكون متقاطعة مع بعضها “اي منفصلة”، و بفرض ان ابعاد الصورة من مضاعفات المربعات. يمكنك العمل كالاتي :


I=ones(32,40);
[m n]=size(I);

x=4;
y=4;

B=cell(m/x,n/y);
for i=1:x:m
    for j=1:y:n
        h=i+x-1;
        w=j+y-1;
        B{h/x,w/y}=I(i:h,j:w);
    end
end

استخدمت ماتريكس I كمثال بدل على الصورة.


(eslamoo) #3

اخي العزيز يمكنك ايضا استخدام الدالة mat2cell

الكود في الاسفل. موفق



clear all;
close all;
clc; 
M=imread('yourpicture.jpg'); 
C = mat2cell(M(:,:,1),[4 4 4 4 4 4 4 4],[4 4 4 4 4 4 4 4 4 4]);