در این مبحث آشنا میشویم با :
1- تابع imread
2- تعریف تروکالر
3- مثال برای آموزش تابع imread
4- نگاتیو کردن عکس
عملا بحث خواندن و ذخیره سازی مطالب رادر محیط متلب باهاش اشنا شدیم کاری که بعد از این انجام خواهیم داد درآموزش تابع imread در متلب همه الگوریتم هایی که با ان کار خواهیم کرد اولش یک imread دارد که تصویررا میخوانیم .
Bit Depth:24
24 سه تا 8 است (یک تصویر رنگی سه لایه ) هر کدام از ان Bitبیت ها بین 0 تا255 است یعنی یک عدد 8 بیتی bitاست .
;img = imread( ‘ rice . png ‘ )<< img<256 . 256 uint8>
کلا این تصویر میشود
Integer 8 bit بدون علامت است که طبق ان چیزی که در بحث ذخیره سازی اطلاعات در کامپیوتر قرارداد شده این رنجش بین 0 تا 255 است اگر سه تا از این 0تا255 ها داشته باشیم میشود سه تا Component رنگی مربوط به هر کدام از این پیکسل ها (RGB)قرمز سبز ابی که اینها را روی هم قرار میدهید میشود سه تا طبقه به خاطر این bitdepth :24 ترو کالر هم اصطلاحا بهش میگن خیلی تنوع رنگی بالایی دارد.
این 16777216 رو اصطلاحا ترو کالرمیگویند که خیلی بالاتر از دقت چشم ماست و چشم ما نمیتواند خیلی از این رنگها را از هم تفکیک بدهد اما به خاطر بحث چاپ وبحث انتقال اطلاعات و بحث علمی ( تصاویر را که همیشه چشم انسان باان برخورد نمیکند)وقتی انسان با این قضایا رو به رو باشد میایند از روش های اندیس گزاری رنگی استفاده میکنند.
به هر حال Bit Depth این مفهومش است اینه که شما چقدر تفکیک پذیری رنگی دارید اینجا چیزایی که معمولا ما توی کامپیوتر های عادی استفاده میکنیم توی کامپیوتر های 32 بیتی همین 24 بیت هست .
چیزی که کوانتیزه میکنید نسبت به دستگاههای مختصات همان ماهواره است.
این زوایا را میشود تشخیص داد با استفاده از یک نگاشت هندسی ان را تیجش داد ، مقیاس بندی ، بزرگ و کوچیک شدن و دوران با علامات ماتریسی پایه قابل انجام است ضرب میشود در یک ماتریسی تمام میشود .
دراین مثال آموزش تابع imread در متلب داریم
جای بلوک (R , G ) را عوض کنیم :
>>img1=imread(‘peppers . png’) >>img2=Zeros(size(img1)); >>img2 (: ,: ,1) = img1 (: , : , 2); >>img2(:,:,2)= img1 (: ,: ,1); >> img2 (: , : , 3) = img1 (: , : ,3); >>figure ; >>subplot (1 ,2 ,1) ; >>Imshow (img1) ; >>subplot (1 ,2 , 2 ); >>imshow (img2);
یعنی جای قرمز و سبز را عوض کنیم ( یک ماتریس که یک سطح دارد دو تا ستون دارد ) متلب تصویر ها را به شکل دابل
نمیشناسد.
Img 1 <384 . 512 . 3 uint8> Img2 <384 . 512 . 3 double> Img2 = uint8(img 2 );
جای رنگهای قرمز و سبز عوض شده رنگهایی که ترکیب مساوی از سبز و قرمز دارند خیلی تحت تاثیر قرار نگرفتن
میتوانید یکی از لایه ها را معکوس کنید (انی که 0 بیشترین مقدار را داشته باشید وانی که 255 به جاش 0 بزارید)
Img3 = 255 – img2; Imshow (img3)
این نگاتیو میشود
همان چیزی که تو فیلم های عکاسی قدیمی میدیدیم که می امدن ان نور را تابش میدادن به ظهوری که در انجا بود (نورهایی را دارد از خودش عبور میدهد که دقیقا برعکس ان تصویر اصلی هستند یعنی خود ان تصویر را دارد از خودش عبور میدهد .)