Erfan. (27-03-13), mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13)
مدل رنگ
مدل رنگ کميتی را به يک رنگ نسبت می دهد تا آن را از ساير رنگ ها متمايز کند. در اينجا تنها دو مدل RGB و HSB شرح داده می شود.
مدل رنگ RGB
در اين مدل هر رنگ از ترکيب سه رنگ قرمز (Red), سبز (Green) و آبی (Blue) با شدت های مختلف ساخته می شود. مقدار شدت هر يک از اين سه رنگ عددی صحيح بين صفر تا 255 است. برای نمايش يک رنگ در فضای اين مدل دستگاه مختصات کارتزين سه بعدی را در نظر می گيريم. در اين صورت محور x معادل شدت رنگ قرمز, محور y معادل شدت رنگ سبز و محور z معادل شدت رنگ آبی است.
RGB Cube.jpg
به عنوان مثال در مدل RGB کد رنگ سياه (0, 0, 0) و کد رنگ سفيد (255, 255, 255) است. برای استخراج کد رنگ ها در سی شارپ تحت اين قالب می توان از کد زير استفاده کرد:
کد:private string getRGB(Color color) { return "(" + color.R.ToString() + ", " + color.G.ToString() + ", " + color.B.ToString() + ")"; }
Optimierung-1-11-eng.jpg
مدل رنگ HSB
در اين مدل يک رنگ براساس يک طيف رنگ (Hue), اشباع رنگ (Saturation) و درخشندگی (Brightness) تعريف می شود. برای نمايش يک رنگ در فضای اين مدل دستگاه مختصات استوانه ای را نظر می گيريم. در اين صورت θ معادل Hue و عددی بين صفر تا 360 است. راستای شعاعی r معادل Saturation و عددی بين صفر تا 1 است. راستای z نيز معادل Brightness خواهد بود که عددی بين صفر تا يک است.
HSB.jpg
به عنوان مثال در مدل HSB کد رنگ سياه (0, 0, 0) و کد رنگ سفيد (0, 0, 1) است. برای استخراج کد رنگ ها در سی شارپ تحت اين قالب می توان از کد زير استفاده کرد:
کد:private string getHSB(Color color) { return "(" + color.GetHue().ToString() + ", " + color.GetSaturation().ToString() + ", " + color.GetBrightness().ToString() + ")"; }
Erfan. (27-03-13), mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13)
مجموعه ای از عملگر های برداری اند که بردار رنگ را به بردار جديدی تبديل می کنند.
تبديل رنگ خاکستری
در مدل RGB بردار خاکستری برداری است از رنگ سياه معادل نقطه ی (0, 0, 0) به رنگ سفيد معادل نقطه ی (255, 255, 255). نقاط روی اين بردار يک طيف خاکستری از رنگ سياه تا رنگ سفيد را تشکيل می دهند. حال اگر هر بردار رنگ (A) روی اين بردار تصوير شود, معادل Grayscale آن رنگ (Agrayscale) به دست می آيد. بردار تصوير شده در راستای بردار يکه ی خاکستری (xgrayscale) و اندازه ی آن برابر ضرب داخلی در است:
Formula.png
grayscale.jpg
کد سی شارپ اين تبديل به شکل زير است:
کد:private Color convert2Grayscale(Color color) { int product = (int)((color.R + color.G + color.B) / 3); return Color.FromArgb(product, product, product); }
تبديل رنگ نگاتيو
negative.jpg
کد زير معادل Negative يک رنگ را بر می گرداند:
کد:private Color convert2Negative(Color color) { return Color.FromArgb(255 - color.R, 255 - color.G, 255 - color.B); }
Erfan. (27-03-13), mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13)
هيستوگرام
يک نمودار آماری است که نحوه ی توزيع پيکسل ها را به ازای يک طيف رنگ مشخص نشان می دهد. هيستوگرام شکل زير بيان می کند چه تعداد پيکسل در ناحيه ی روشن و چه تعداد پيکسل در ناحيه ی تاريک تصوير واقع شده اند:
Histogram.png
Brightness Histogram يک ابزار مناسب جهت تشخيص خطای نورسنجی در دوربين های ديجيتال به شمار می آيد. اگر ما قصد عکس برداری از يک ناحيه ی روشن را داريم در حالی که در پيش نمايش هيستوگرام دوربين بيش تر پيکسل ها در ناحيه ی تاريک توزيع شده باشند, نورسنجی دوربين مناسب نبوده و بايد آن را جبران کرد.
مقايسه ی تصاوير
يکی از راه های مقايسه ی تصاوير استفاده از عملگر تفريق است. برای مقايسه ی دو تصوير با اين روش, بردار های رنگ متناظر در دو تصوير را از هم کم می کنيم و بردار های حاصل را در تصوير جديدی ذخيره می کنيم. اگر در اين دو تصوير در نقطه ی (x, y) رنگ ها مشابه هم بودند, نقطه ی متناظر (x, y) در تصوير جديد به رنگ سياه در می آيد زيرا می دانيم حاصل تفريق دو بردار مشابه بردار صفر است که در مدل رنگ RGB معادل رنگ سياه خواهد بود. در غير اين صورت رنگ آن نقطه در تصوير جديد به شکل روشن در می آيد.
از اين روش می توان در مقايسه ی فريم های يک دوربين امنيتی جهت تشخيص حرکت (Motion Detection) استفاده کرد. در صورتی که در تصوير حاصل از تفاضل دو فريم متوالی رنگی غير از سياه مشاهد شود (هيستوگرام آن توزيعی در ناحيه ی روشن داشته باشد), می توان نتيجه گرفت که صحنه ی مقابل دوربين تغيير کرده است. از روش مشابه برای مقايسه ی تصوير پزشکی اسکن مغز بيمار با يک نمونه ی سالم جهت تشخيص بيماری استفاده می کنند.
PET.gif
Erfan. (27-03-13), mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13)
در اين روش فيلتر H در تصوير A ضرب کانولوشن می شود (H *A) تا تصوير A ويژگی های مد نظر ما نظير نويز کم تر و يا درخشندگی بيش تر را بيابد. تصوير A از پيکسل هايی در طول و عرض تشکيل شده است و بين دو پيکسل متوالی نمی توان هيچ پيکسل ديگری تعريف کرد لذا فضای تصوير A گسسته است. در نتيجه بايد ضرب کانولوشن در فضای گسسته اجرا گردد. در اين صورت فيلتر H به شکل يک ماتريس مربعی در می آيد که به آن ماسک يا هسته ی پيچش (Convolution Mask يا Convolution Kernel) گفته می شود. اگر هسته ی پيچش يک ماتريس 3 در 3 باشد, ضرب کانولوشن آن برای يک پيکسل به شکل زير صورت می گيرد:
Kernel.jpg
Convolution.jpg
mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13)
فيلتر ميانگين
فيلتر ميانگين (Mean Filter) فيلتری خطی جهت کاهش نويز تصوير است. اين فيلتر, ميانگين مولفه های بردار رنگ پيکسل های همسايه را با مولفه های متناظر بردار رنگ پيکسل جاری جايگزين می کند. هسته ی آن به شکل زير است:
MeanKernel.jpg
در شکل زير می توان مشاهده کرد که از جزئيات در تصوير فيلتر شده (سمت راست) نسبت به تصوير اصلی (سمت چپ) کاسته شده است:
mean.jpg
کد سی شارپ اين فيلتر از پیوست قابل دریافت است.
فيلتر ميانه
فيلتر ميانه (Median Filter) يک فيلتر غير خطی برای کاهش نويز تصاوير است که عملکرد بهتری نسبت به فيلتر ميانگين دارد گرچه نسبت به آن کند تر است. در اين فيلتر مولفه های متناظر بردار رنگ پيکسل جاری و پيکسل های همسايه ی آن از نزولی به صعودی مرتب می شوند و مقاديری که در وسط اين ترتيب قرار می گيرد به عنوان مولفه های رنگ پيکسل جاری در نظر گرفته می شوند.
mehrdad_ab (28-03-13), Rezasam1 (27-03-13), smrbh (27-03-13), thedaek (21-01-14)
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks