اولا شكرا لك اخي الكريم
ثانيا من الكود التالي الا يفترض ان تكون عناصر المصفوفة X مكونه من المصفوفه الصفرية ومن المصفوفةM
لكن عندما طبقت كانت النتيجة ان مصفوفة Xتحمل قيم جديده ليست مساويه لقيم المصفوفة M
فمثلا اذا كانت المصفوفة
M=
1011
1100
1101
1111
وهكذا
فهذا يعني ان المصفوفة Xستكون كالتالي:
1011
0000
1100
0000
1101
0000
1111
وهذا هو الكود(
clear
A=imread('ward.jpg');
B=imresize(A,[400 400]);
C=rgb2gray(B);
D=dec2bin(C);
S=dec2bin(0);
M = D(:,1:4);
L = D(:,5:end);
[N W] = size(M);
j = 1;
X(1,:)= M(1,:);
for i = 2: N + N - 1
if (rem(i,2) == 1)
X(i,:)= M(i-j,:);
j = j + 1;
else
X(i,:) = S;
end
end
X
أرى فى الحالة الثانية عند تطبيق الكود على جهاز أخر أعطت النتيجة الصحيحية
لذلك هناك خطأ فى الجهاز لديك ولكن لا اعلم ما هو الخطا
يمكنك محاولة تنفيذ الكود مرات عديدة حتى تحصلين على النتيجة المطلوبة
اخي الفاضل حتى في المرة الثانية لم يتطبق معي لان المصفوفة متغيرة ولم تكن نفس النتيجة
واعذرني عندي استفسار هل يوجد طريقة اخرى استطيع ان اطبق الفكرة بكود اخر.(يعني ان اقوم بدمج المصفوفة M مع L
بحيث تكون الصفوف الزوجية ماخوذة من المصفوفة M والفردية من المصفوفة L)
وبالنسبة للفقرة الثانية فان الكود الاتى ياخد الصفوف الزوجية من M والفردية من L
[/b]
clear
A = imread('ward.jpg');
B = imresize(A,[400 400]);
C = rgb2gray(B);
D = dec2bin(C);
S = dec2bin(0);
M = D(:,1:4);
L = D(:,5:end);
[NM WM] = size(M);
[NL WL] = size(L);
N = NM + NL;
J = 1;
K = 1;
% One only
X(1,:) = L(1,:);
for i = 2:N
if (rem(i,2) == 1) % Odd
X(i,:) = L(i-J,:);
J = J + 1;
end
if (rem(i,2) == 0) % Even
X(i,:) = M(i-K,:);
K = K + 1;
end
end
جزاك الله كل الخير اخي الفاضل
الى الان لست ادري ماهو الخلل لكن عندما استطيع حل المشكلة باذن الله ساكتب الكود هنا لكي تعم الفائدة لاخواني واخواتي من بعدي