کوانتیزه

عنوان : کوانتیزه
گروه درخواست : MATLAB
شرح درخواست :

برنامه ای که تصویر مرد عکاس را خوانده و سپس آن را در 2 و 4 ،6 ،16 ،32 سطح کوانتیزه کند.


پاسخ کارشناس

با سلام
من یه راهنمایی میکنم انشالا که به دردتون بخوره
با فرض اینکه اطلاعات تصویر، در متغیر image ذخیره شده باشد، آنگاه چنانچه دستور imresize را به صورت imresize(image,A) به کار ببریم، که در آن A یک ضریب عددی است، آنگاه دستور imresize ، تصویر image را به اندازه ضریب A ، بزرگتر یا کوچکتر می کند. اگر ضریب A بین 0 تا 1 باشد، آنگاه تصویر حاصل، از تصویر image ، کوچکتر خواهد بود و چنانچه ضریب A ، بزرگتر از 1 باشد، آنگاه تصویر حاصل، از تصویر image ، بزرگتر می شود. به مثال زیر توجه کنید :
کدهای زیر را می نویسیم :


clear all
close all
clc

image=imread('friend.jpg');
imshow(image)

image_new=imresize(image,0.5)
figure
imshow(image_new)
ابتدا تصویری با نام friend.jpg را با دستور imread ، در نرم افزار متلب وارد می کنیم و آن را با دستور imshow ، نمایش می دهیم. سپس با دستور imresize ، اندازه تصویر را به نصف کاهش می دهیم (ضریب برابر با 0.5 انتخاب شده است). در پایان، تصویر حاصل شده (با نام image_new) را با دستور imshow نمایش داده ایم. دستور figure ، برای باز شدن یک پنجره مخصوص شکل جدید است تا در انتها، هر دو تصویر را داشته باشیم.

تغییر اندازه بر اساس تعداد ردیف ها و ستون های ماتریس اطلاعات تصویر ثانویه :
می توانیم اندازه تصویر ثانویه را بر اساس تعداد ردیف ها و تعداد ستون های ماتریس مربوط به آن، تعیین کنیم. برای این منظور، باید از دستور imresize ، به صورت imresize(image, [numrows numcols]) استفاده کنیم که در آن، پارامتر numrows برابر تعداد ردیف ها و پارامتر numcols برابر تعداد ستون های مورد نظر ما برای ماتریس مربوط به تصویر ثانویه می باشد. همان مثال قبل را این بار با این روش می نویسیم :
کدهای زیر را می نویسیم :


clear all
close all
clc

image=imread('friend.jpg');
imshow(image)

image_new=imresize(image,[200,80])
figure
imshow(image_new)
تعداد ستون ها را عمدا، کمتر از تعداد ردیف ها، انتخاب کرده ایم تا تصویر در جهت افقی، فشرده تر شود.

با تشکر ،
مهدی جوادی
پاسخیاب

توسط مهدی جوادی در تاریخ 1396/11/09

شما هم سوال دارید ؟

از کارشناسان پاسخیاب بپرسید!