تبلیغات
آموزش مطلب - نگانیو کردن عکس

نگانیو کردن عکس

نویسنده :امین باشی
تاریخ:یکشنبه 11 تیر 1385-03:07 ق.ظ

اگر بخواهیم یک عکس سیاه و سفید را نگاتیو کنیم چی کار باید کرد؟

با تمام نرم افزراهای پردازش تصویر به راحتی می‌توانید این کار را انجام دهید.امروز می‌خوایهم یاد بگیریم با مطلب این کارو انجام بدیم.

اولین کار ایجاد یک پنچره برای این کاره

figure('unit','pixel','pos',[50 100 950 600])

a1=axes('unit','pixel','pos',[50 150 400 400],'vis','off');

a2=axes('unit','pixel','pos',[500 150 400 400],'vis','off');

uicontrol('unit','pixel','pos',[225 50 50 25],'string','start','callback','alg(x,a2)');

uicontrol('unit','pixel','pos',[675 50 50 25],'string','exit','callback','close all');

من این پنجره را برای وضوح 1024*768 تنظیم کردم.حالا باید عکس مورد نظر را وارد محیط مطلب کنیم.

x=imread('pic.bmp');

مطلب تصویر را به دو حالت ذخیره می کند.الان با حالت RGB کار می‌کنیم. سه خط بعدی تصویر را به حالت RGB تبدیل می‌کنند.

if ~isrgb(x)

    x=ind2rgb(x);

end

و حالا نمایش تصاویر

y=x;

image('parent',a1,'cdata',x)

image('parent',a2,'cdata',y);

حالا باید یک تابع بنویسیم که تبدیل مورد نظر رو روی عکس انجام بدهد.

 function alg(x,a2)

[m,n,k]=size(x);

yy=[];

hy=image('cdata',yy,'parent',a2);

for i=1:m

    for j=1:n

        if x(i,j,1)== 0 & x(i,j,2)== 0 x(i,j,3)== 0;

            yy(i,j,=[1 1 1];

        else

            yy(i,j,=[0 0 0];

        end

    end

    set(hy,'cdata',yy,'parent',a2)

    drawnow

    حتما همه می‌دانید که دستورات بالا مربوط به یک فایل جداگانه به اسم alg.m است.

در حالت RGB هر تصویر به صورت یک ماتریس m*n*3 ذخیره می‌شود.m,n شماره پیکسل است.در هر m,n سه درایه وجود دارد که رنگ پیکسل است.

خط سوم یک تصویر تهی تعریف می کند و خط چهارم آن را نمایش می‌دهد.با کمک این تصویر نگاتیو شدن تصوی را به صورت سطر به سطر نمایش دهیم.حتی می‌توانیم به صورت پیکسل به پیکسل این کار را انجام دهیم اما برنامه کند می‌شود.

چون تصویر ما سیاه و سفید است  می توانستیم شرط برنامه را به صورت

        if x(i,j,1)== 0

بنوسیم، اما در حالت کلی باید شرط را بطور کامل نوشت.

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



نوع مطلب : figure 





All right reserved©2005 Amin Bashi