انجمن سایت کلیدستان



بلوک4*4زمان کنونی: ۱۳۹۵/۰۹/۲۱، ۰۶:۱۳ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: alma
آخرین ارسال: alma
پاسخ 5
بازدید 2020

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بلوک4*4

بلوک4*4

#1
سلام وممنون که لطف کردید جوابم رو دادید اما متاسفانه سوال من متفاوت با جوابی که دادید بود
یه تصویر رو که تو متلب دانلود کردیم  بعد از خوندن تصویر و نمایش آن با ماتریس که ماتریس بزرگی هست حال میخواهیم این ماتریس رو به بلوکهای 4*4  تجزیه کنیم نه اینکه تقسیم به 4 کنیم اگه درست بگم با دستور for 
ممنون که جوابمو میدین
 

 
پاسخ

بلوک4*4

#2
سلام.
بهتر بود در ادامه همان موضوع، این ارسال رو می نوشتید.
دقیقا بفرمایید که منظورتون از تجزیه تصویر به بلوک های 4 در 4 چیست ؟
اگر روند مورد نظرتان را به درستی متوجه شوم، سعی می کنم در کدنویسی کمکتون کنم.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

بلوک4*4

#3
سلام دوباره و ممنون از کمکتون
پروژه ای که کار میکنیم مربوط به فشرده سازی تصویره.بعد از لود تصویر خام وخواندن تصویر  میخوایم که این ماتریس بزرگ رو به ماتریسهای4*4 تبدیل کنیم با دستورfor.مثال از سطر1تا4وستون1تا4 رو با یه ماتریس و از سطر5تا8وستون1تا4 و..... تا آخرین آرایه رو نمایش بده .ممنون از شما
پاسخ

بلوک4*4

#4
(۱۳۹۲/۰۷/۰۹, ۱۱:۵۵ ق.ظ)'alma' نوشته: سلام دوباره و ممنون از کمکتون
پروژه ای که کار میکنیم مربوط به فشرده سازی تصویره.بعد از لود تصویر خام وخواندن تصویر  میخوایم که این ماتریس بزرگ رو به ماتریسهای4*4 تبدیل کنیم با دستورfor.مثال از سطر1تا4وستون1تا4 رو با یه ماتریس و از سطر5تا8وستون1تا4 و..... تا آخرین آرایه رو نمایش بده .ممنون از شما


 


از کد زیر استفاده کنید ، قبلا ادمین زحمت کشیده بود برای من این کد رو نوشته ، من به دلخواه تغییراتی توش دادم ولی در کل یک ماتریس رو به ماتریس های کوجچک با ابعاد دلخواه تجزیه میکنه و حتی میتونید این ماتریس های کوچک رو به ماتریس دیگه ای منتقل کنید. من حتی این کد رو توسعه دادم و برای یک ماتریس سه بعدی هم نوشتم که میاد و مکعب های کوچک رو از یک مکعب بزرگ جدا میکنه . خیلی راحته . موفق باشید.


کد:
A=m_fft_row;

A_size=size(A);
row_divide=121;
column_divide=121;

if (mod(A_size(1),row_divide)==0)
row=floor(A_size(1)/row_divide);
else
row=floor(A_size(1)/row_divide)+1;
end

if (mod(A_size(2),column_divide)==0)
column=floor(A_size(2)/column_divide);
else
column=floor(A_size(2)/column_divide)+1;
end
D=A;


for nn=1:row
for mm=1:column
clear B dat
if (nn==row && mm==column)
B=A((nn-1)*row_divide+1:A_size(1),(mm-1)*column_divide+1:A_size(2));
elseif (nn==row)
B=A((nn-1)*row_divide+1:A_size(1),(mm-1)*column_divide+1:mm*column_divide);

elseif (mm==column)
B=A((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:A_size(2));
else
B=A((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:mm*column_divide);

end

اگر میخواهید روی این ماتریس کوچک پردازشی انجام بدید ، اینجا بنویسید و بعد خروجی رو مشخص کنید.

% save to output matrix

if (nn==row && mm==column)
D((nn-1)*row_divide+1:A_size(1),(mm-1)*column_divide+1:A_size(2))=dat;

elseif (nn==row)
D((nn-1)*row_divide+1:A_size(1),(mm-1)*column_divide+1:mm*column_divide)=dat;

elseif (mm==column)
D((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:A_size(2))=dat1((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:A_size(2));

else
D((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:mm*column_divide)=dat;

end

end
end



 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin

بلوک4*4

#5
سلام
واقعا ممنونم از لطفتون
کمک زیادی کردید موفق باشید
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)