PDA

مشاهده نسخه کامل : توضیح کد



MahdiAlHoseini
17-05-15, 17:58
بسم الله الرحمن الرحیم
با سلام
لطفا راجع به قطعه کد زیر توضیح بدید:




M = zeros(256,1,'uint8'); %// Store mapping - Cast to uint8 to respect data type
for idx = 1 : 256
[~,ind] = min(abs(cdf1(idx) - cdf2));
M(idx) = ind-1;
end

out = M(double(im1)+1);
با سپاس فراوان:11():

ravegoat
18-05-15, 22:41
با سلام!



M = zeros(256,1,'uint8');

تولید یک ماتریس صفر ستونی با 256 سطر هشت بیتی.



for idx = 1 : 256
...
end

یک حلقه با شمارنده ی idx که از 1 تا 256 با گام 1 تغییر می کند.



[~,ind] = min(abs(cdf1(idx) - cdf2));

ابتدا المان idx ام متغیر cdf1 از متغیر cdf2 تفریق می شود. سپس قدر مطلق آن حساب می شود. حاصل می تواند یک ماتریس سطری باشد که با دستور min، اندیس مقدار کمینه (تاکید می شود اندیس آن و نه مقدار آن) در متغیری به نام ind ذخیره می گردد.



M(idx) = ind-1;

مقدار ind از یک کم شده و در المان idx ام متغیر M ذخیره می شود.



out = M(double(im1)+1);

ابتدا مقدار متغیر im1 به عددی از نوع double تبدیل می گردد و سپس با یک جمع می شود. حاصل به عنوان اندیس ماتریس M خواهد بود که مقدار آن المان از ماتزیس M در متغیری به نام out ریخته می شود.

موفق باشید
آرمین