موضوعات وبسایت : تبلیغات
سوالات ICDL
آموزش امنیت اینستاگرام

چگونگی تبدیل rgb به hsv

نویسنده : محمد پارسایی | زمان انتشار : 22 اسفند 1399 ساعت 11:02

شنبه 09 مهر 1390, 23:03 عصر #6

آموزش امنیت اینستاگرام
سوالات ICDL

نقل قول: تبدیل RGB به HSV

سیستم رنگی HSV(Hue, Saturation, Value) با نامهای دیگه ای مثل HSB(Hue, Saturation, Brightness) یا HLS(Hue, Luminance, Saturation) هم شناخته میشه. اگه بجای Saturation با Chroma هم برخورد کردید تعجب نکنید.

برای این تبدیل می تونید از تابع ColorRGBToHLS که توی GraphUtil پیاده شده هم استفاده کنید. ColorHLSToRGB هم عکس همین کار رو انجام میده.

توجه داشته باشید که در این توابع R, G, B در بازه 0-255 و H, L, S در بازه 0-240 متغیرند، و پارامتر clrRGB و خروجی ColorHLSToRGB هم که از نوع TColorRef تعریف شدن در واقع همون TColor خودمونن. با توابع GetRValue, GetGValue و GetBValue که در یونیت Windows تعریف شدن میشه مقادیر قرمز، سبز و آبی رو از TColor استخراج کرد و با تابع RGB که باز هم در Windows پیاده شده میشه یه TColor از روی مقادیر اولیه تولید کرد.

-----------------------


بعد از در و گوهر پاشی(یا پاچی) در سطور فوق یه سری به ویکی زدم و متوجه شدم که HSV دقیقا همون HLS نیست.
HSV خیلی شبیه به نیمه پائینی HLS هست، یعنی مثلا در همون توابع بالا، L بجای 0 تا 240، از 0 تا 120 متغیره. البته همون عکس توی ویکی نشون میده که این فرض صحیح نیست. اینه که بر گردیم سر کد خودتون:

شما احتمالا کد minair2004 رو بدون هیچ تحریفی کپی کردین تو دلفی و کامپایل کردید، خوب X.Val به تنهایی یک دستور نیست و کامپایلر بهش گیر میده. به جای سه خط آخر کد زیر رو امتحان کنید که بدون مشکل اجرا میشه:


  Caption := Format('H:%f, S:%f, V:%f', [X.Hue, X.Sat, X.Val]);

آخرین ویرایش به وسیله SAASTN : شنبه 09 مهر 1390 در 23:42 عصر دلیل: هر آنچه بعد از ------ پاچیده شده!

آیا این مطلب برای شما مفید بود؟




ارسال نظر

نام


ایمیل


نظر