تبلیغات
آموزش مطلب - مطالب image

image2

نویسنده :امین باشی
تاریخ:شنبه 12 شهریور 1384-06:09 ق.ظ

Image2

امروز تعدادی از ویژگیهای تابع image كه نحت نام  Data Defining the Object دسته بندی می‌شوند را برسی می كنیم.

این ویژگیها برای تعریف كردن تصویر بكار می‌روند

 

تابع image به دو صورت سطح بالا و سطح پایین قابل استفاده است.(حتما تفاوت زبانهای سطح بالا مثل C ، با زبانهای سطح پایین مثل اسمبلی را می‌دانید).

استفاده از تابع به صورت سطح بالا یك سری ویژگی دارد

جهت y برعكس می‌شود.

نمای دید به [0 90] تغیر می‌كند.(view([0 90]))

و...

هنگام اسفاده از تابع سطح پایین، مسقیما با خصوصیات نصویر كار  می‌كنیم.

image('PropertyName',PropertyValue,...)

 

Cdata

یك ماتریس یا یك آرایه سه بعدی كه رنگ تصویر را مشخص می‌كند.

image('cdata',cdata)

معادل با image(C) است.در واقع image(c) معادل سطح بالا است.

متلب(مطلب)به 3 طریق تصویر را رنگ می‌كند.

با توجه به colormap ماتریس را اندیس گذاری می‌كند. مثلا اگر مقدار یك درایه برابر با 15 باشد به ان درایه رنگ 15ام از colormap را اختصاص می‌دهد.

در این حالت ویژگی CdataMapping برابر با direct است.

در حالت دوم مقدار ویژگی CdataMapping برابر با scaled است.یعنی رنگ با توجه به ویژگی clim تعین می‌شود. Clim یك بردار است كه اولین درایه آن برایر با شماره اولین رنگ در colormap و درایه دوم آخرین رنگ از colormap است.خلاصه كنم در این حالت به بزرگترین درایه ماتریس آخرین رنگ و به كوچكترین درایه آن اولین رنگ از colormap اختصاص داده شده و با توجه به این بقیه درایه ها رنگ می‌گیرند.

 h=image([1 40 20]);

حالا این دستور را امتحان كنید و تفاوت را ببینید

set(h,'CDataMapping','scaled')

حالت سوم استفاده از ماتریس RGB است.(به مطالب فبلی مراجعه كنید)

CdataMapping

كار این ویژگی را توضیح دادم ( به چند خط بالاتر مراجعه كنید) فقط نكته مهم این است كه هنگامی كه از ماتریسRGB(true color) استفاده می‌كنید این ویژگی بی تاثیر است.

Xdata و Ydata

محل قرار گرفتن اولین رنگ را مشخص می‌كند. متلب همیشه یك ناحیه مربعی را رنگ می‌كند كه مختصات مركز آن با توجه به این ویژگیها مشخص می‌شود.

مقدار پیش فرض آن در زیر آورده شده است.

 XData                        [1 size(CData,2)]

 

YData                        [1 size(CData,1)]

 



نوع مطلب : image 

image

نویسنده :امین باشی
تاریخ:پنجشنبه 10 شهریور 1384-09:09 ق.ظ

image

برای نمایش تصویر استفاده می‌شود.

image (C)

image (x,y,C)

image (...,'PropertyName',PropertyValue,...)

image ('PropertyName',PropertyValue,...)

handle = image(...)

برای نمایش تصویر لازم است كه ابتدا ان را به صورت ماتریس در بیاوریم.

خود ماتریس به دوحالت قابل استفاده است.

1-هر درایه آن نشاندهنده شماره یك از از colormap باشد.

image (floor(rand(64,64)*64))

منظور از floor همان جز صحیح است.

2- ماترسی به صورت m-by-n-by- 3 باشد كه با آنtrue color  گفته می‌شود.

در نوع ماتریس m وn نشاندهنده هر پیكسل و اندیس 3و2و1 نشاندهنده رنگ آن پیكسل است. اندیس 1 رنگ قرمز، 2 رنك سبز و 3 آبی . به این ماتریس ، ماتریس RGB هم گفته می‌شود.

 

برای تبدیل كردن تصویر به ماتریس از دستور imread استفاده می‌كنیم.یك تصویر بر روی كامپیتر خود در نظر بگیرید. و آدرس آن را به عنوان آرگومان

دستور imread استفاده كنید.

C=imread (' **** ');

دقت كنید كه '' را حتما استفاده كنید. اگر تصویر شما از نوع GIF باشد به‌صورت

colormap(حالت اول) ذخیره می‌شود. اگر در تصویر شما رنگ سفید باشد به صورت آبی نمایش داده می‌شود چون در colormap پیش فرض پنجره رنگ سفید تعریف نشده است.اما اگر از یك تصویر JPG استفاده كنید.به صورت RGB ذخیره می‌شود.

برای دیدن تصویر بنویسید                                                      image(C)

اگر در محور ها دقت كنید متوجه می‌شوید كه در هنگام نمایش تصاویر محور y برعكس می‌شود.

حالا كه تصاویر به ماتریس تبدیل كردیم، می‌توان آنها را ویرایش كرد.

clear

k2=1:100;

fig=figure;

c0=zeros (256,1);

c255 (256,1)=255;

c255 (:,1)=255;

cf= (0:255)';

cb=(255:-1:0)';

Co=[c0 ,c255  , cf ; cf , cb , c255 ; c255 ,c0 ,cb];

i=10;

while  ishandle(fig)

    C(k2,k2,1)=Co(i- 9,1)/255;

    C(k2,k2,2)=Co(i- 9,2)/255;

    C(k2,k2,3)=Co(i- 9,3)/255;

image (C)

 drawnow

 i=i+1;

 if i >=778

     i=10;

 end

end

در این مثال ابتدا طیف رنگ سبز تا قرمز (3*256=768) را ایجاد شده و بعد در یك تصویر از نوع RGB به اندازه 100*100 استفاده شده است.

 



نوع مطلب : image 





All right reserved©2005 Amin Bashi