كيف أظهر عناصر المصفوفة(الصورة) كاعداد حقيقية وليس صحيحة


(system) #1

السلام عليكم
كيفكم مهندسينا ومهندساتنا =)

الله يرضى عليكم ممكن تساعدوني بشغله بسيطة بس مجننتني لي اسبوع
أحاول أحلها >> اجل كيف صارت بسيطة

عموما الكود بتاعي شغلته يحسب تباين الصورة من خلال هالمعادلة:
con(x,y)= fmax- fmin/ fmax + k

where fmax(x, y) and fmin(x, y) refer to the maximum and
the minimum image intensities within a local neighborhood
window.
K is a positive but infinitely small number,
which is added in case the local maximum is equal to 0.
Con(x, y) denotes the contrast value of the estimating pixel
(x, y).

وهذي محاولاتي مع الكود


imag=imread('be.png');% any greysecal image
imag = imag( :, :, 1);
[h, w] = size(imag);
b=80;%size of window
imag = padarray(imag, [b b], 'symmetric', 'both');

for I=1+b : b : h+b
    for J=1+b : b : w+b
Win=imag(I:I+b,J:J+b);
        if max(Win(:)) == 0
            con(I:J+b,J:J+b)=(max(Win(:))- min(Win(:))) \ max(Win(:))+1;% k=1 when largest contrast in window=0
        else
            con(I:J+b,J:J+b)=(max(Win(:))+ min(Win(:)) \ max(Win(:)));
        end
end
end


الخطأ اللي يواجهني
: أن قيم con تنحسب كأعداد صحيحه مقربة !!
يعني لو طلعت القيمة من المعادلة 0.111
يحسبها 0 !!

كيف أخليه يحسبها لي كأعداد بفواصل بدون ما يقرب ويسوي نفسه قدع وفاهم =|

الله يعطيكم ألف عافية
انتظر مساعداتكم =)


#2

عن طريق الامر الاتى

double(x)

ويكون البرنامج على الصورة الاتية

        if max(Win(:)) == 0
            con(I:J+b,J:J+b)=double(max(Win(:))- min(Win(:))) \ double(max(Win(:))+1);% k=1 when largest contrast in window=0
        else
            con(I:J+b,J:J+b)=double(max(Win(:))+ min(Win(:))) \ double(max(Win(:)));
        end

(system) #3

يعطيك الللللف عافيه ضبط الكود معي
الله يجزاك خير ويدخلك الجنه قول آآميين


#4

شكرا على ردك الطيب وبالتوفيق لك ان شاء الله فى حياتك العلمية