Color Space.pdf

‫‪Advanced Information & Communication Technology Center, Digital Media Laboratory‬‬
‫ﮔﺰﺍﺭﺵ ﭘﻴﺸﺮﻓﺖ ﭘﺮﻭﮊﻩ ﮐﺎﺭﺷﻨﺎﺳﯽ ﺍﺭﺷﺪ‬
‫ﺟﻌﻔﺮ ﻣﺤﻤﺪﯼ‬
‫‪[email protected]‬‬
‫ﺗﺎرﯾﺦ ﺗﻬﻴﻪ ﮔﺰارش‬
‫‪.٩‬ﺁذر‪ ١٣٨٣.‬ﺗﺎ ‪.٢٠‬دﯼ‪١٣٨٣.‬‬
‫ﺷﻤﺎرﻩ ﮔﺰارش‬
‫ﮔﺰارش ﺷﻤﺎرﻩ ‪۵‬‬
‫ﻋﻨﻮان ﮔﺰارش‬
‫ﻓﻀﺎهﺎﯼ رﻧﮓ‪ ،‬وﯾﮋﮔﯽ و ﮐﺎرﺑﺮدهﺎ و ﺟﻌﺒﻪاﺑﺰار ‪ColorConversion toolbox‬‬
‫ﺧﻼﺻﻪ‬
‫هﺪف از ﺗﻬﻴﻪﯼ اﯾﻦ ﮔﺰارش ﻣﻌﺮﻓﯽ ﻓﻀﺎهﺎﯼ رﻧﮓ‪ ،‬وﯾﮋﮔﯽهﺎﯼ ﺁﻧﺎن و ﮐﺎرﺑﺮدهﺎﯾﯽ ﮐﻪ دارﻧﺪ‪ ،‬ﻣﯽﺑﺎﺷﺪ‪ .‬اﺑﺘﺪا ﻣﺒﺎﻧﯽ رﻧﮓ و‬
‫ﺗﻌﺎرﯾﻒ اﺳﺘﺎﻧﺪارد اوﻟﻴﻪ‪ ،‬اراﺋﻪ ﺷﺪﻩ‪ ،‬ﻣﺪل ‪ RGB‬و ‪ XYZ‬و ﻧﺤﻮﻩﯼ ﻧﻤﺎﯾﺶ ﻓﻀﺎهﺎﯼ رﻧﮕﯽ ﺗﻮﺿﻴﺢ دادﻩ ﺷﺪﻩاﻧﺪ‪ .‬ﺳﭙﺲ دﻟﻴﻞ‬
‫وﺟﻮد و اﺳﺘﻔﺎدﻩ از ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﺘﻔﺎوت ﺑﺤﺚ ﺷﺪﻩ اﺳﺖ‪.‬‬
‫در اداﻣﻪ ﻣﻌﻤﻮلﺗﺮﯾﻦ ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﻮﺟﻮد‪ ،‬ﺷﺎﻣﻞ ‪ ،CMY(K) ،xyY‬ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﺨﺘﻠﻒ اﻧﺘﻘﺎل ﺗﻠﻮﯾﺰﯾﻮﻧﯽ‪،YUV ،YIQ :‬‬
‫'‪ YCbCr ،YU'V‬و ‪ ،YCC‬ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﺒﺘﻨﯽ ﺑﺮ درﮎ دﯾﺪارﯼ اﻧﺴﺎن‪ HIS :‬و ‪ HSV‬و ﻓﻀﺎهﺎﯼ ﺧﻄﯽ‪ L*a*b* ،L*u*v* :‬و‬
‫‪ LCH‬ﻣﻌﺮﻓﯽ ﺷﺪﻩ‪ ،‬ﻧﺤﻮﻩﯼ ورود از ﻓﻀﺎﯼ ‪ RGB‬ﺑﻪ ﺁنهﺎ و ﺑﺎﻟﻌﮑﺲ ﺗﻮﺿﻴﺢ دادﻩ ﺷﺪﻩ و ﻣﻮارد ﮐﺎرﺑﺮد هﺮ ﮐﺪام از ﺁنهﺎ ذﮐﺮ‬
‫ﺷﺪﻩ اﺳﺖ‪.‬‬
‫در هﺮ ﻣﺮﺣﻠﻪ‪ ،‬ﭘﺲ از اراﺋﻪﯼ ﻧﺤﻮﻩﯼ ﺗﺒﺪﯾﻼت‪ ،‬ﻧﮑﺎﺗﯽ ﮐﻪ ﺑﺎﯾﺪ در ﭘﻴﺎدﻩﺳﺎزﯼ ﺁنهﺎ ﻣﺪ ﻧﻈﺮ ﻗﺮار ﮔﻴﺮﻧﺪ‪ ،‬ذﮐﺮ ﺷﺪﻩ و ﮐﺪ ﻣﻄﻠﺐ‬
‫ﻣﺮﺑﻮط ﺑﻪ ﺁن ﺗﺒﺪﯾﻞ ﺁوردﻩ ﺷﺪﻩ اﺳﺖ‪ .‬ﻣﺠﻤﻮﻋﻪﯼ ﮐﻠﻴﻪﯼ ﺗﻮاﺑﻊ ﻣﻄﻠﺐ ﺗﺤﺖ ﻋﻨﻮان ‪ ColorConversion toolbox‬ﺟﻤﻊﺑﻨﺪﯼ‬
‫ﺷﺪﻩ اﺳﺖ‪.‬‬
‫ﮐﻠﻤﺎت ﮐﻠﻴﺪﯼ‬
‫رﻧﮓ‪ ،‬ﻓﻀﺎﯼ رﻧﮓ‪ ،‬ﮐﺮوﻣﻴﻨﺎﻧﺲ‪ ،‬ﻟﻮﻣﻴﻨﺎﻧﺲ‪ ،‬درﮎ دﯾﺪارﯼ‪ ،‬ﻣﻄﻠﺐ‪ ،‬ﺟﻌﺒﻪاﺑﺰار‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪http://dml.aictc.com .‬‬
‫‪1‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ رﻧﮓ و ﻓﻀﺎﯼ رﻧﮓ ‪RGB‬‬
‫درﯾﺎﻓﺖ اﻧﺴﺎن از رﻧﮓ اﺷﻴﺎ ﺑﻪوﺳﻴﻠﻪﯼ ﻣﺎهﻴﺖ ﻧﻮر ﻣﻨﻌﮑﺲ ﺷﺪﻩ از ﺁنهﺎ ﻣﻌﻴﻦ ﻣﯽﺷﻮد‪ .‬ﻧﻮر ﻣﺮﺋﯽ ﻧﻮار ﻧﺴﺒﺘﺎ ﺑﺎرﯾﮑﯽ در ﻃﻴﻒ اﻧﺮژﯼ اﻟﮑﺘﺮوﻣﻐﻨﺎﻃﻴﺴﯽ‬
‫ﻣﯽﺑﺎﺷﺪ‪ .‬ﺑﺴﺘﻪ ﺑﻪ اﯾﻨﮑﻪ ﯾﮏ ﺷﯽء در ﮐﺪام ﻣﺤﺪودﻩ از ﻃﻴﻒ ﻧﻮرﯼ‪ ،‬اﻧﻌﮑﺎس ﺧﻮﺑﯽ داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﺑﺮاﯼ ﭼﺸﻢ ﻧﺎﻇﺮ ﺑﻪ ﺁن رﻧﮓ ﺑﻪ ﻧﻈﺮ ﻣﯽرﺳﺪ‪.‬‬
‫اﯾﻦ ﺗﻌﺒﻴﺮ‪ ،‬ﺗﻌﺒﻴﺮ ﻓﻴﺰﯾﮑﯽ رﻧﮓ ﻣﯽﺑﺎﺷﺪ‪ ،‬اﻣﺎ ﭘﺪﯾﺪﻩﯼ ﺗﺸﺨﻴﺺ رﻧﮓ در اﻧﺴﺎن ﯾﮏ ﭘﺪﯾﺪﻩﯼ ﺟﺴﻤﯽ‪ -‬رواﻧﯽ ﺑﻮدﻩ و ﻣﺎهﻴﺖ ﺁن ﺑﺮ ﻣﺎ ﭘﻮﺷﻴﺪﻩ اﺳﺖ‪ .‬در اﺻﻞ‬
‫درﮎ ﯾﮏ رﻧﮓ‪ ،‬ﻋﮑﺲاﻟﻌﻤﻠﯽ اﺳﺖ ﮐﻪ ﻣﻐﺰ ﺑﻪ ﻣﺤﺮﮎهﺎﯼ درﯾﺎﻓﺘﯽ از ﺳﻨﺴﻮرهﺎﯼ ﭼﺸﻢ ﻣﯽدهﺪ‪ .‬درﮎ و درﯾﺎﻓﺖ رﻧﮓ‪ ،‬اﺣﺴﺎﺳﯽ ﺷﺨﺼﯽ ﺑﻮدﻩ و‬
‫ﻧﺴﺒﯽ ﻣﯽﺑﺎﺷﺪ‪ .‬اﻓﺮاد ﻣﺨﺘﻠﻒ در ﻣﻮاﺟﻬﻪ ﺑﺎ رﻧﮓهﺎﯼ ﻣﺘﻔﺎوت و ﺗﻼش ﺑﺮاﯼ ﺑﻴﺎن ﺗﻔﺎوت ﺁنهﺎ‪ ،‬اﺣﺴﺎسهﺎﯼ ﻣﺨﺘﻠﻔﯽ را از اﯾﻦ ﺗﻔﺎوتهﺎ ﺑﻴﺎن ﮐﺮدﻩاﻧﺪ‪.‬‬
‫ﻣﺠﻤﻊ ﺟﻬﺎﻧﯽ اﺳﺘﺎﻧﺪاردﺳﺎزﯼ روﺷﻨﺎﯾﯽ )‪ ،(CIE1‬ﺗﻌﺎرﯾﻒ ﻣﺸﺨﺺ زﯾﺮ را ﺑﺮاﯼ اﯾﻦ اﺣﺴﺎسهﺎ اراﯾﻪ دادﻩ اﺳﺖ‪:‬‬
‫•‬
‫درﺧﺸﻨﺪﮔﯽ‪ :2‬ﻣﻴﺰان ﻧﻮر درﯾﺎﻓﺘﯽ ﺗﻮﺳﻂ ﭼﺸﻢ اﻧﺴﺎن از اﺷﻴﺎ‪ ،‬ﮐﻪ ﺗﻮﺳﻂ ﺁن‪ ،‬اﻧﺴﺎن‪ ،‬درﺧﺸﻨﺪﻩﺗﺮ ﺑﻮدن ﯾﮏ ﺷﯽ از دﯾﮕﺮﯼ را ﺗﺸﺨﻴﺺ‬
‫ﻣﯽدهﺪ‪.‬‬
‫•‬
‫ﺗﻪرﻧﮓ‪ :3‬اﺣﺴﺎس اﻧﺴﺎن از ﺷﺒﺎهﺖ ﺑﻴﻦ دو ﻧﺎﺣﻴﻪ‪ ،‬ﺗﻮﺳﻂ اﯾﻦ ﭘﺎراﻣﺘﺮ ﺗﻌﻴﻴﻦ ﻣﯽﮔﺮدد‪ .‬در اﺻﻞ‪ ،‬ﺗﻪرﻧﮓ ﺑﻴﺎﻧﮕﺮ رﻧﮓ ﻏﺎﻟﺒﯽ اﺳﺖ ﮐﻪ ﺑﻴﻨﻨﺪﻩ‬
‫درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ‪.‬‬
‫•‬
‫ﭘﺮرﻧﮕﯽ‪ :4‬ﻣﻴﺰان ﮐﻤﺘﺮ ﯾﺎ ﺑﻴﺸﺘﺮ ﺑﻪ ﭼﺸﻢﺁﻣﺪن دو ﻧﺎﺣﻴﻪ ﺑﺎ ﺗﻪرﻧﮓ ﯾﮑﺴﺎن را ﻧﺸﺎن ﻣﯽدهﺪ‪.‬‬
‫‪5‬‬
‫•‬
‫روﺷﻨﺎﯾﯽ ‪ :‬ﻣﻴﺰان اﺣﺴﺎس درﺧﺸﻨﺪﮔﯽ ﯾﮏ ﻧﺎﺣﻴﻪ ﺗﻮﺳﻂ ﭼﺸﻢ اﻧﺴﺎن ﻧﺴﺒﺖ ﺑﻪ رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ‪.‬‬
‫•‬
‫رﻧﮕﻴﻨﯽ‪ :6‬ﻣﻴﺰان ﭘﺮرﻧﮕﯽ ﯾﮏ ﻧﺎﺣﻴﻪ ﻧﺴﺒﺖ ﺑﻪ درﺧﺸﻨﺪﮔﯽ رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ‪.‬‬
‫•‬
‫‪7‬‬
‫اﺷﺒﺎع ‪ :‬ﻣﻴﺰان ﭘﺮرﻧﮕﯽ ﯾﮏ ﻧﺎﺣﻴﻪ ﻧﺴﺒﺖ ﺑﻪ درﺧﺸﻨﺪﮔﯽ ﺁن ﻧﺎﺣﻴﻪ ﯾﺎ ﺑﻪﻋﺒﺎرﺗﯽ دﯾﮕﺮ ﺧﻠﻮص ﻧﺴﺒﯽ ﺗﻪرﻧﮓ ﺁن‪.‬‬
‫ﯾﮑﯽ از اوﻟﻴﻦ اﺳﺘﺎﻧﺪاردهﺎﯾﯽ ﮐﻪ ﺗﻮﺳﻂ ‪ CIE‬ﺗﻌﺮﯾﻒ ﺷﺪﻩ اﺳﺖ‪ ،‬اﺳﺘﺎﻧﺪارد ‪ RGB‬ﻣﯽﺑﺎﺷﺪ‪ .‬اﯾﻦ اﺳﺘﺎﻧﺪارد ﺑﺮ ﭘﺎﯾﻪﯼ ﺗﺌﻮرﯼ ﺳﻪرﻧﮕﯽ ﻣﯽﺑﺎﺷﺪ‪ .‬ﺑﺮ اﺳﺎس‬
‫اﯾﻦ ﺗﺌﻮرﯼ در اﯾﻦ ﻣﺪل‪ ،‬هﺮ رﻧﮓ‪ ،‬ﺑﺎ ﺗﺮﮐﻴﺐ ﻣﻘﺎدﻳﺮي از هﺮ ﮐﺪام از ﺳﻪ رﻧﮓ ﭘﺎﯾﻪﯼ ﻗﺮﻣﺰ )‪ ،(Red‬ﺳﺒﺰ )‪ (Green‬و ﺁﺑﻲ )‪ (Blue‬اﻳﺠﺎد ﻣﻲﺷﻮد‪ .‬ﻣﻄﺎﺑﻖ اﯾﻦ‬
‫اﺳﺘﺎﻧﺪارد )‪ (CIE RGB‬رﻧﮓهﺎﯼ ﭘﺎﯾﻪ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬
‫•‬
‫ﻗﺮﻣﺰ )ﺑﺎ ﻃﻮل ﻃﻴﻒ رﻧﮓ ‪ ٧٠٠‬ﻧﺎﻧﻮﻣﺘﺮ(‬
‫•‬
‫ﺳﺒﺰ )ﺑﺎ ﻃﻮل ﻃﻴﻒ رﻧﮓ ‪ ۵۴۶/١‬ﻧﺎﻧﻮﻣﺘﺮ(‬
‫•‬
‫ﺁﺑﯽ )ﺑﺎ ﻃﻮل ﻃﻴﻒ رﻧﮓ ‪ ۴٣۵/٨‬ﻧﺎﻧﻮﻣﺘﺮ(‬
‫اﻟﺒﺘﻪ ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﻣﻌﻨﺎﯼ ﭘﺎﯾﻪ‪ ،‬در ﺗﻌﺮﯾﻒ ﻓﻮق اﯾﻦ ﻧﻴﺴﺖ ﮐﻪ اﯾﻦ ﺳﻪ ﻣﻮﻟﻔﻪ ﺑﻪ ﺗﻨﻬﺎﯾﯽ ﻣﯽﺗﻮاﻧﻨﺪ ﺗﻤﺎم رﻧﮓهﺎﯼ ﻃﻮل ﻃﻴﻒ را ﺗﻮﻟﻴﺪ ﮐﻨﻨﺪ‪ .‬دراﻳﻦ ﻣﺪل‬
‫ﺑﺮاي ﻧﺸﺎن دادن ﻓﻀﺎ‪ ،‬از ﻳﮏ دﺳﺘﮕﺎﻩ ﻣﺨﺘﺼﺎت ﮐﺎرﺗﺰﻳﻦ اﺳﺘﻔﺎدﻩ ﺷﺪﻩ اﺳﺖ‪ .‬زﻳﺮﻓﻀﺎﻳﻲ از اﻳﻦ دﺳﺘﮕﺎﻩ ﻣﺨﺘﺼﺎت ﮐﻪ ﺗﻤﺎم رﻧﮓهﺎ را در ﺑﺮ ﻣﻲ ﮔﻴﺮد ﻣﮑﻌﺒﻲ‬
‫اﺳﺖ ﮐﻪ در ﺷﮑﻞ زﯾﺮ ﻧﺸﺎن دادﻩ ﺷﺪﻩ اﺳﺖ‪:‬‬
‫ﻓﻀﺎي رﻧﮓ ‪RGB‬‬
‫در ﻣﮑﻌﺐ ﻣﺨﺘﺼﺎت‪ ،‬ﺳﻪ رﻧﮓ ﻗﺮﻣﺰ‪ ،‬ﺳﺒﺰ و ﺁﺑﻲ در ﺳﻪ ﮔﻮﺷﻪﯼ ﻣﮑﻌﺐ و ﺳﻪ رﻧﮓ ﻓﻴﺮوزﻩاﯼ‪ ،‬ﺑﻨﻔﺶ و زرد در ﺳﻪ ﮔﻮﺷﻪﯼ دﻳﮕﺮ اﻳﻦ ﻣﮑﻌﺐ ﺟﺎي دارﻧﺪ‪.‬‬
‫رﻧﮓ ﺳﻴﺎﻩ در ﻣﺒﺪا اﺳﺖ و ﺳﻔﻴﺪ هﻢ در ﮔﻮﺷﻪ اي از ﻣﮑﻌﺐ اﺳﺖ ﮐﻪ ﺑﻴﺸﺘﺮﻳﻦ ﻓﺎﺻﻠﻪ را ﺗﺎ ﻣﺒﺪا دارد‪ .‬در اﻳﻦ ﻣﺪل ﻣﻘﺎدﻳﺮ ﺳﻄﻮح ﺧﺎﮐﺴﺘﺮي ‪ ،‬در اﻣﺘﺪاد‬
‫ﺧﻄﻲ ﮐﻪ رﻧﮓ ﺳﻴﺎﻩ را از ﻳﮏ ﮔﻮﺷﻪ ﺑﻪ رﻧﮓ ﺳﻔﻴﺪ در ﮔﻮﺷﻪﯼ دﻳﮕﺮ وﺻﻞ ﮐﺮدﻩ‪ ،‬ﻗﺮار دارﻧﺪ و هﺮ رﻧﮕﻲ ﻧﻘﻄﻪاي روي ﺳﻄﺢ ﻣﮑﻌﺐ ﻳﺎ درون ﺁن اﺳﺖ ﮐﻪ‬
‫ﻣﻲ ﺗﻮان ﺁن را ﺑﻪ ﺻﻮرت ﺑﺮدارهﺎﻳﻲ ﮐﻪ از ﻣﺒﺪا ﺳﺮﭼﺸﻤﻪ ﮔﺮﻓﺘﻪاﻧﺪ‪ ،‬درﻧﻈﺮ ﮔﺮﻓﺖ‪ .‬هﻤﭽﻨﻴﻦ ﻣﻘﺎدﻳﺮ رﻧﮓهﺎ را ﺑﻪ ﮔﻮﻧﻪاي ﻧﺮﻣﺎل ﻣﻲﮐﻨﻨﺪ ﮐﻪ ﻣﮑﻌﺐ ﺷﮑﻞ‬
‫ﻓﻮق‪ ،‬ﻳﮏ ﻣﮑﻌﺐ واﺣﺪ ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ هﺮ ﺳﻪ ﻣﺘﻐﻴﺮ ‪ G ، R‬و ‪ B‬در ﻣﺤﺪودﻩ ]‪ [0, 1‬ﺗﻐﻴﻴﺮ ﻣﻲﮐﻨﻨﺪ‪.‬‬
‫‪http://www.hike.te.chiba-u.ac.jp/ikeda/CIE/home.html‬‬
‫‪Brightness‬‬
‫‪Hue‬‬
‫‪Colorfulness‬‬
‫‪Lightness‬‬
‫‪Chroma‬‬
‫‪Saturation‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫در ﺑﺴﻴﺎرﯼ از ﮐﺎرﺑﺮدهﺎ ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ از ﻣﻘﺎدﯾﺮ ‪ Gamma Corrected‬ﺷﺪﻩﯼ ‪ RGB‬ﯾﻌﻨﯽ '‪ R'G'B‬اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﻢ‪ .‬ﺑﺮاﯼ اﯾﻦ ﻣﻨﻈﻮر از ﺗﺒﺪﯾﻞ زﯾﺮ اﺳﺘﻔﺎدﻩ‬
‫ﻣﯽﮐﻨﻴﻢ )‪ K‬ﻧﻤﺎﯾﻨﺪﻩﯼ هﺮ ﮐﺪام از ﻣﻮﻟﻔﻪهﺎﯼ ﻧﺮﻣﺎلﺷﺪﻩﯼ ‪ RGB‬ﻣﯽﺑﺎﺷﺪ(‪:‬‬
‫)‪if (K > 0.018‬‬
‫)‪if (K ≤ 0.018‬‬
‫‪0.45‬‬
‫‪− 0.099‬‬
‫‪⎪⎧ 1.099 * K‬‬
‫⎨ = '‪K‬‬
‫‪4.5 * K‬‬
‫⎩⎪‬
‫ﮐﻪ ﻣﻘﺎدﯾﺮ ﺑﺪﺳﺖﺁﻣﺪﻩﯼ ﻓﻮق ﻧﻴﺰ در ﺑﺎزﻩﯼ ]‪ [0,1‬ﺑﻮدﻩ و ﺑﺎﯾﺪ ﺑﻴﻦ ‪ ٠‬و ‪ ٢۵۵‬ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﭘﻴﺪا ﮐﺮدﻩ و ﮔﺮد ﺷﻮﻧﺪ ﺗﺎ ﺑﻪ ﻣﻘﺎدﯾﺮ دﯾﺠﻴﺘﺎل ‪ ٨‬ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﮔﺮدﻧﺪ‪.‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫)‪[Rp Gp Bp] = GammaCorrectRGB (R, G, B‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ G ،R‬و ‪ B‬را ﮐﻪ در ﺑﺎزﻩﯼ ]‪ [0,255‬ﻗﺮار دارﻧﺪ‪ ،‬ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ Gamma Corrected‬ﺷﺪﻩﯼ ﺁﻧﻬﺎ در هﻤﺎن‬
‫ﺑﺎزﻩ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫]‪% scaling components to [0,1‬‬
‫;‪Rn = double(R)/255‬‬
‫;‪Gn = double(G)/255‬‬
‫;‪Bn = double(B)255‬‬
‫‪if Rn <= 0.018‬‬
‫;‪Rp = 4.5*Rn‬‬
‫‪else‬‬
‫;‪Rp = 1.099*(Rn^0.45)-0.099‬‬
‫;‪end‬‬
‫‪if Gn <= 0.018‬‬
‫;‪Gp = 4.5*Gn‬‬
‫‪else‬‬
‫;‪Gp = 1.099*(Gn^0.45)-0.099‬‬
‫;‪end‬‬
‫‪if Bn <= 0.018‬‬
‫;‪Bp = 4.5*Bn‬‬
‫‪else‬‬
‫;‪Bp = 1.099*(Bn^0.45)-0.099‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪[Rp Gp Bp] = Scale28bit(Rp,Gp,Bp‬‬
‫ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق هﻢ از ﺗﺒﺪﯾﻞ زﯾﺮ اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﻢ )'‪ K‬ﻧﻤﺎﯾﻨﺪﻩﯼ هﺮ ﮐﺪام از ﻣﻮﻟﻔﻪهﺎﯼ ﻧﺮﻣﺎلﺷﺪﻩﯼ '‪ R'G'B‬ﻣﯽﺑﺎﺷﺪ(‪:‬‬
‫)‪if (K ' > 0.081‬‬
‫)‪if (K ' ≤ 0.081‬‬
‫‪⎧ ⎛ K '+ 0.099 ⎞100 45‬‬
‫⎜ ⎪⎪‬
‫⎟‬
‫⎠ ‪K = ⎨ ⎝ 1.099‬‬
‫⎪‬
‫'‪K‬‬
‫⎩⎪‬
‫‪4.5‬‬
‫ﮐﻪ ﻣﻘﺎدﯾﺮ ﺑﺪﺳﺖﺁﻣﺪﻩﯼ ﻓﻮق ﻧﻴﺰ در ﺑﺎزﻩﯼ ]‪ [0,1‬ﺑﻮدﻩ و ﺑﺎﯾﺪ ﺑﻴﻦ ‪ ٠‬و ‪ ٢۵۵‬ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﭘﻴﺪا ﮐﺮدﻩ و ﮔﺮد ﺷﻮﻧﺪ ﺗﺎ ﺑﻪ ﻣﻘﺎدﯾﺮ دﯾﺠﻴﺘﺎل ‪ ٨‬ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﮔﺮدﻧﺪ‪.‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫)‪[R G B] = ReverseGammaCorrectRGB (Rp, Gp, Bp‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ Gamma Corrected‬ﺷﺪﻩﯼ ‪ Gp ،Rp‬و ‪ Bp‬را ﮐﻪ در ﺑﺎزﻩﯼ ]‪ [0,255‬ﻗﺮار دارﻧﺪ‪ ،‬ﺑﻪ ﻣﻘﺎدﯾﺮ ﻣﻌﻤﻮﻟﯽ‬
‫ﺁﻧﻬﺎ در هﻤﺎن ﺑﺎزﻩ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪3‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫]‪% scaling components to [0,1‬‬
‫;‪Rpn = double(Rp)/255‬‬
‫;‪Gpn = double(Gp)/255‬‬
‫;‪Bpn = double(Bp)/255‬‬
‫‪if Rpn < 0.081‬‬
‫;‪R = Rpn/4.5‬‬
‫‪else‬‬
‫;)‪R = ((Rpn+0.099)/1.099)^(100/45‬‬
‫;‪end‬‬
‫‪if Gpn < 0.081‬‬
‫;‪G = Gpn/4.5‬‬
‫‪else‬‬
‫;)‪G = ((Gpn+0.099)/1.099)^(100/45‬‬
‫;‪end‬‬
‫‪if Bpn < 0.081‬‬
‫;‪B = Bpn/4.5‬‬
‫‪else‬‬
‫;)‪B = ((Bpn+0.099)/1.099)^(100/45‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪[R G B] = Scale28bit(R,G,B‬‬
‫ﭼﺮا ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﺨﺘﻠﻒ؟‬
‫ﻧﻮر رﻧﮕﯽ ﻗﺎﺑﻞ ﻣﺸﺎهﺪﻩ‪ ،‬ﺷﺎﻣﻞ رﻧﮓهﺎﯾﯽ اﺳﺖ ﮐﻪ ﺑﺮ روﯼ ﻃﻴﻒ اﻧﺮژﯼ اﻟﮑﺘﺮوﻣﻐﻨﺎﻃﻴﺴﯽ از ‪ ۴٠٠‬ﺗﺎ ‪ ٧٠٠‬ﻧﺎﻧﻮﻣﺘﺮ ﻗﺮار دارﻧﺪ‪ .‬ﺗﻌﺪاد اﯾﻦ رﻧﮓهﺎ ﺑﺴﻴﺎر زﯾﺎد‬
‫ﺑﻮدﻩ‪ ،‬هﻢ از ﻟﺤﺎظ ﮐﺎراﯾﯽ و هﻢ از ﻟﺤﺎظ ﭘﻴﭽﻴﺪﮔﯽ ﺑﻪﮐﺎرﮔﻴﺮﯼ‪ ،‬ﮐﺎر ﮐﺮدن ﺑﺎ ﻣﺸﺨﺼﻪﯼ ﻃﻮل ﻃﻴﻒ رﻧﮓهﺎ‪ ،‬ﮐﺎرﯼ اﺳﺖ ﺑﺴﻴﺎر ﻣﺸﮑﻞ‪ .‬از ﻃﺮﻓﯽ اﯾﻦ ﺗﻌﺮﯾﻒ‬
‫از رﻧﮓ‪ ،‬ﺟﻨﺒﻪﯼ ﻓﻴﺰﯾﮑﯽ داﺷﺘﻪ و هﻴﭻ ﺳﻨﺨﻴﺘﯽ ﺑﺎ ﺳﻴﺴﺘﻢ ﺑﻴﻨﺎﯾﯽ و ادراﮎ اﻧﺴﺎن ﻧﺪارد‪ .‬در ﻧﺘﻴﺠﻪ ﻧﻴﺎز ﭘﻴﺪا ﮐﺮدن ﺑﻪ ﻓﻀﺎﯾﯽ ﭼﻨﺪ ﺑﻌﺪﯼ و ﺗﻌﺮﯾﻒ ﻣﺠﺪد‬
‫رﻧﮓهﺎ در ﻓﻀﺎﯾﯽ ﺑﺎ اﺑﻌﺎد ﺑﻪ ﻣﺮاﺗﺐ ﮐﻮﭼﮏﺗﺮ و اﺳﺘﻔﺎدﻩ از ﺣﺪاﮐﺜﺮ اﺑﻌﺎد ﻗﺎﺑﻞ درﮎ )ﯾﻬﻨﯽ ‪ ٣‬ﺑﻌﺪ(‪ ،‬ﻧﻴﺎزﯼ ﺑﺪﯾﻬﯽ ﺑﻮد‪ .‬اﻟﺒﺘﻪ هﻤﺎنﻃﻮر ﮐﻪ اﺷﺎرﻩ ﺷﺪ‪ ،‬اﺑﻌﺎدﯼ‬
‫ﮐﻪ در اﯾﻦ ﻓﻀﺎهﺎ اراﺋﻪ ﻣﯽﺷﻮﻧﺪ‪ ،‬اﺻﻮﻟﯽ اﺳﺖ ﻧﺸﺎﻧﮕﺮ وﯾﮋﮔﯽهﺎﯾﯽ از رﻧﮓ ﺑﺎﺷﻨﺪ‪ ،‬ﮐﻪ ﺑﺮاﯼ ﺳﻴﺴﺘﻢ ﺑﻴﻨﺎﯾﯽ اﻧﺴﺎن ﻗﺎﺑﻞ ﻟﻤﺲ ﺑﺎﺷﺪ‪ .‬اﯾﻦ ﮐﺎر ﭘﺮدازش‬
‫ﺟﻬﺖدار و ﻣﻔﻬﻮﻣﯽ را ﺑﺮ روﯼ ﺗﺼﺎوﯾﺮ رﻧﮕﯽ اﻣﮑﺎنﭘﺬﯾﺮ ﻣﯽﺳﺎزد‪.‬‬
‫ﺗﻤﺎﻣﯽ ﻓﻀﺎهﺎﯼ رﻧﮕﯽ ﺑﺮاﯼ رﻓﻊ اﯾﻦ ﻧﻴﺎز ﺑﻪوﺟﻮد ﺁﻣﺪﻩاﻧﺪ‪ .‬ﺗﻔﺎوت ﺁﻧﻬﺎ ﺑﺎ هﻤﺪﯾﮕﺮ ﻧﻴﺰ‪ ،‬ﻧﺎﺷﯽ از ﺗﻌﺎرﯾﻒ ﻣﺘﻔﺎوﺗﯽ اﺳﺖ ﮐﻪ ﺑﺮاﯼ هﺮ ﮐﺪام از اﺑﻌﺎد و ﻣﺮﮐﺰ اﯾﻦ‬
‫اﺑﻌﺎد ﻣﺘﻌﺎﻣﺪ‪ ،‬در هﺮ ﮐﺪام از اﯾﻦ ﻓﻀﺎهﺎ اراﯾﻪ ﺷﺪﻩ اﺳﺖ‪ .‬ﺑﺴﺘﻪ ﺑﻪ ﻣﺎهﻴﺖ اﺑﻌﺎدﯼ ﮐﻪ در هﺮ ﮐﺪام از ﻓﻀﺎهﺎ اراﯾﻪ ﺷﺪﻩ اﺳﺖ‪ ،‬ﺁن ﻓﻀﺎ ﺑﺮاﯼ ﮐﺎرﺑﺮدهﺎﯼ‬
‫ﻣﺸﺨﺼﯽ ﻣﻨﺎﺳﺐ ﮔﺮدﯾﺪﻩ اﺳﺖ‪ .‬ﻣﺜﻼ در ﯾﮏ ﺳﻴﺴﺘﻢ ﭘﺮدازﺷﯽ‪ ،‬اﺳﺘﻔﺎدﻩ از ﯾﮏ ﻓﻀﺎﯼ ﺧﻄﯽ ﺣﺘﯽ ﺑﺎ ﭘﻴﭽﻴﺪﮔﯽ زﯾﺎد )ﻣﺜﻼ *‪ ،(L*a*b‬ﺑﺴﻴﺎر ﻣﻄﻠﻮب‬
‫اﺳﺖ‪ ،‬در ﺣﺎﻟﻴﮑﻪ در ﯾﮏ ﺳﻴﺴﺘﻢ ﻧﻤﺎﯾﺶ ‪ ،CRT‬ﺧﻄﯽ ﺑﻮدن ﯾﺎ ﻧﺒﻮدن ﻓﻀﺎ ﺑﺮاﯼ ﻣﺎ ﻣﻬﻢ ﻧﻴﺴﺖ‪ ،‬ﺑﻠﮑﻪ ﻣﻬﻢ‪ ،‬ﺳﻬﻮﻟﺖ ﭘﻴﺎدﻩﺳﺎزﯼ ﺳﺨﺖاﻓﺰارﯼ ﺁن ﻓﻀﺎ و‬
‫ﭘﻴﭽﻴﺪﮔﯽ هﺮ ﭼﻪ ﮐﻤﺘﺮ ﺁن )ﻣﺜﻼ ‪ (RGB‬اﺳﺖ )ﯾﮏ ﻓﻀﺎﯼ رﻧﮓ در ﺻﻮرﺗﯽ ﺧﻄﯽ اﺳﺖ ﮐﻪ ﺗﻐﻴﻴﺮات در ﯾﮑﯽ از اﺑﻌﺎد ﺁن‪ ،‬ﻣﺘﻨﺎﻇﺮ ﺑﺎ هﻤﺎن ﻣﻴﺰان ﺗﻐﻴﻴﺮ در‬
‫ﻣﻔﻬﻮﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﺑﺎ ﺁن ﺑﻌﺪ ﻣﺘﻨﺎﻇﺮ اﺳﺖ(‪.‬‬
‫روشهﺎﯼ ﻣﺨﺘﻠﻒ ﻧﻤﺎﯾﺶ ﻓﻀﺎﯼ رﻧﮓ‬
‫دو روش ﺑﺮاﯼ ﻣﺸﺨﺺ ﮐﺮن ﯾﮏ رﻧﮓ در ﯾﮏ ﻓﻀﺎ وﺟﻮد دارد‪ .‬ﯾﮑﯽ اﺳﺘﻔﺎدﻩ از اﺑﻌﺎد )ﻣﺤﺮﮎ( ﭘﺎﯾﻪ )‪ ،(T1 T2 T3‬و دﯾﮕﺮﯼ ﺑﺎ اﺳﺘﻔﺎدﻩ از ﮐﺮوﻣﻴﻨﺎﻧﺲ )رﻧﮕﻴﻨﮕﯽ(‬
‫و ﻟﻮﻣﻴﻨﺎﻧﺲ )درﺧﺸﻨﺪﮔﯽ( ﺁن )‪ ،(t1 t2 Y‬ﮐﻪ در ﺁن‪:‬‬
‫‪T2‬‬
‫‪T1 + T2 + T3‬‬
‫= ‪t2‬‬
‫‪,‬‬
‫‪T1‬‬
‫‪T1 + T2 + T3‬‬
‫= ‪t1‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪4‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫در اﯾﻦ ﻧﺤﻮﻩﯼ ﻧﻤﺎﯾﺶ‪ ،‬هﺮ ﻓﻀﺎﯼ رﻧﮓ ﺑﻪ دو ﺑﺨﺶ ﻣﺠﺰاﯼ اﻃﻼﻋﺎت رﻧﮕﯽ و درﺧﺸﻨﺪﮔﯽ ﺗﻘﺴﻴﻢ ﻣﯽﺷﻮد‪ ،‬ﮐﻪ در ﺁن اﻃﻼﻋﺎت رﻧﮕﯽ )‪ t1‬و ‪ (t2‬در ﯾﮏ زﯾﺮ‬
‫ﻓﻀﺎﯼ دو ﺑﻌﺪﯼ ﻗﺎﺑﻞ ﻧﻤﺎﯾﺶ اﺳﺖ‪ .‬اﯾﻦ زﯾﺮ ﻓﻀﺎﯼ دوﺑﻌﺪﯼ را ﺑﺮاﯼ ‪ xy‬در اداﻣﻪ ﺧﻮاهﻴﺪ دﯾﺪ‪ .‬هﻤﭽﻨﻴﻦ در ﺑﺨﺶهﺎﯼ ﺑﻌﺪﯼ ﺧﻮاهﻴﻢ دﯾﺪ ﮐﻪ اﮐﺜﺮ ﻓﻀﺎهﺎﯾﯽ‬
‫ﮐﻪ از اﯾﻦ ﺷﻴﻮﻩﯼ ﻧﻤﺎﯾﺶ ﺑﻬﺮﻩ ﻣﯽﮔﻴﺮﻧﺪ‪ ،‬زﯾﺮﻓﻀﺎﯼ رﻧﮕﻴﻨﮕﯽ ﺁنهﺎ ﺗﻐﻴﻴﺮ ﺧﻄﯽ ﯾﺎﻓﺘﻪﯼ هﻤﻴﻦ زﯾﺮ ﻓﻀﺎﯼ ‪ xy‬ﻣﯽﺑﺎﺷﺪ‪.‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪XYZ‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬در ﺳﺎل ‪ CIE ،١٩٣١‬اﻗﺪام ﺑﻪ ﻣﻌﺮﻓﯽ ﯾﮏ ﻣﺠﻤﻮﻋﻪ رﻧﮓ ﭘﺎﯾﻪﯼ ﺟﺪﯾﺪ ﺑﺮاﯼ ﺑﺮﻃﺮف ﮐﺮدن ﻣﺸﮑﻼت ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﻧﻤﻮد‪ .XYZ :‬ﻣﺸﮑﻞ‬
‫ﻓﻀﺎﯼ رﻧﮓ ﻗﺒﻠﯽ در اﯾﻦ ﺑﻮد ﮐﻪ ﺑﺮاﯼ ﻣﺸﺎهﺪﻩﮔﺮهﺎﯼ ﻣﺨﺘﻠﻒ ﻧﻈﻴﺮ اﻧﺴﺎنهﺎ‪ ،‬ﺳﻨﺴﻮرهﺎ و ‪ ...‬ﺗﻌﺮﯾﻒ واﺣﺪﯼ ﺑﺮاﯼ درﯾﺎﻓﺖ اﻃﻼﻋﺎت رﻧﮕﯽ ﻣﻮﺟﻮد ﻧﺒﻮد‪.‬‬
‫ﯾﻌﻨﯽ در ﻓﻀﺎﯼ ‪ ،RGB‬ﻣﺸﺨﺼﺎت رﻧﮕﯽ ﻧﻴﻤﻪﺷﻬﻮدﯼ و واﺑﺴﺘﻪ ﺑﻪ وﺳﺎﯾﻞ اﻧﺪازﻩﮔﻴﺮﯼ اﺳﺖ‪ .‬در اﯾﻦ ﻓﻀﺎﯼ رﻧﮓ ﭘﺎﯾﻪﯼ ﺟﺪﯾﺪ‪ ،‬اﺟﺰاﯼ رﻧﮓهﺎﯼ ﭘﺎﯾﻪ‬
‫رﻧﮓهﺎﯼ واﻗﻌﯽ ﻧﻴﺴﺘﻨﺪ‪ .‬ﻣﻴﺰان درﺧﺸﻨﺪﮔﯽ رﻧﮓ در اﯾﻦ ﻓﻀﺎ ﺑﺮﺧﻼف ﻓﻀﺎﯼ ﻗﺒﻞ ﻓﻘﻂ ﺑﻪ ﯾﮏ ﭘﺎراﻣﺘﺮ )‪ (Y‬ﺑﺴﺘﮕﯽ دارد و ﺑﻘﻴﻪﯼ ﭘﺎراﻣﺘﺮهﺎ‪ ،‬وﯾﮋﮔﯽهﺎﯼ‬
‫رﻧﮕﯽ را ﭘﻮﺷﺶ ﻣﯽدهﻨﺪ‪.‬‬
‫ﺑﺮاﯼ ورود ﺑﻪ ﻓﻀﺎﯼ ‪ XYZ‬از ‪ RGB‬و ﺑﺎﻟﻌﮑﺲ ﻣﯽﺗﻮان از ﻣﺎﺗﺮﯾﺲهﺎﯼ ﺗﺒﺪﯾﻞ زﯾﺮ ) اﺳﺘﺎﻧﺪارد ‪ CIE 1931‬ﺑﺎ رﻧﮓ ﻣﺮﺟﻊ ﺳﻔﻴﺪ ‪ ( D65‬اﺳﺘﻔﺎدﻩ ﮐﺮد‪:‬‬
‫⎤‬
‫⎥‬
‫⎥‬
‫⎥⎦‬
‫‪⎡R ⎤ ⎡ 3.240479 −1.537150 −0.498535⎤ ⎡ X‬‬
‫⎢ ⎥ ⎢‬
‫⎢ ⎥‬
‫‪0.041556 ⎥ * ⎢Y‬‬
‫‪⎢G ⎥ = ⎢ −0.969256 1.875992‬‬
‫‪⎣⎢B ⎦⎥ ⎢⎣ 0.055648 −0.204043 1.057311 ⎦⎥ ⎣⎢ Z‬‬
‫⎤ ‪⎤ ⎡ 0.412453 0.357580 0.180423⎤ ⎡R‬‬
‫⎢ ⎥‬
‫⎥ ⎢ ⎥‬
‫⎥ ‪⎥ = ⎢ 0.212671 0.715160 0.072169 ⎥ * ⎢G‬‬
‫⎥⎦ ‪⎦⎥ ⎢⎣0.019334 0.119193 0.950227 ⎦⎥ ⎢⎣B‬‬
‫‪⎡X‬‬
‫⎢‬
‫‪⎢Y‬‬
‫‪⎣⎢ Z‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﺑﻪ ﻓﻀﺎﯼ ‪ XYZ‬و ﺑﺎﻟﻌﮑﺲ‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬در ﺗﺒﺪﯾﻞ ﻣﺴﺘﻘﻴﻢ ) ﯾﻌﻨﯽ ﺣﺮﮐﺖ از ‪ RGB‬ﺑﻪ ‪ ،( XYZ‬اﮔﺮ ﻣﻘﺎدﯾﺮ ‪ G ،R‬و ‪ B‬در ﺑﺎزﻩﯼ ]‪ [0, 255‬ﺑﺎﺷﻨﺪ‪ Y ،X ،‬و ‪ Z‬ﺑﻪ ﺗﺮﺗﻴﺐ در‬
‫ﺑﺎزﻩهﺎﯼ ]‪ [0,255] ،[0, 243‬و ]‪ [0,278‬واﻗﻊ ﺧﻮاهﻨﺪ ﺷﺪ و ﺑﺮاﯼ ﻧﻤﺎﯾﺶ ‪ ٨‬ﺑﻴﺘﯽ ﻣﯽﺑﺎﯾﺴﺘﯽ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس دادﻩ ﺷﻮﻧﺪ‪ .‬ﺑﺮاﯼ اﻧﺠﺎم ﺗﺒﺪﯾﻞ ﻣﻌﮑﻮس ﻧﻴﺰ‬
‫اﺑﺘﺪا ﺑﺎﯾﺪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ XYZ‬ﺑﻪ ﺑﺎزﻩهﺎﯼ ]‪ [0,255] ،[0, 243‬و ]‪ [0,278‬ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس دادﻩ ﺷﺪﻩ و ﺳﭙﺲ ﺿﺮب ﻣﺎﺗﺮﯾﺲهﺎ اﻧﺠﺎم ﺷﻮد‪ .‬ﮐﻪ در اﯾﻦ ﺻﻮرت‬
‫ﻣﻘﺎدﯾﺮ ﺑﺪﺳﺖ ﺁﻣﺪﻩ‪ ٨ ،‬ﺑﻴﺘﯽ ﺧﻮاهﻨﺪ ﺑﻮد‪.‬‬
‫)‪[x y z] = rgb2xyz (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را ﮔﺮﻓﺘﻪ و ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ XYZ‬را در ﺧﺮوﺟﯽ ﺗﻮﻟﻴﺪ ﻣﯽﮐﻨﺪ‪.‬‬
‫‪%RGB to XYZ conversion matrix‬‬
‫[=‪rgb2xryrzrMatrix‬‬
‫‪0.412453 0.357580 0.180423‬‬
‫‪0.212671 0.715160 0.072169‬‬
‫;]‪0.019334 0.119193 0.950227‬‬
‫;']‪xryrzr = rgb2xryrzrMatrix * [r g b‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪[x y z] = Scale28bit(xryrzr(1),xryrzr(2),xryrzr(3), 0,243 ,0,255 ,0,278‬‬
‫)‪[r g b] = xyz2rgb (x, y, z‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ XYZ‬را ﮔﺮﻓﺘﻪ و ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را در ﺧﺮوﺟﯽ ﺗﻮﻟﻴﺪ ﻣﯽﮐﻨﺪ‪.‬‬
‫‪% scaling components to origin ranges.‬‬
‫;)‪x = MyScale(x, 0,255, 0,243‬‬
‫;)‪y = MyScale(y, 0,255, 0,255‬‬
‫;)‪z = MyScale(z, 0,255, 0,278‬‬
‫‪%XYZ to RGB coversion matrix‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪5‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫[=‪xyz2rrgrbrMatrix‬‬
‫‪-0.498535‬‬
‫‪0.041556‬‬
‫;]‪1.057311‬‬
‫‪-1.537150‬‬
‫‪1.875992‬‬
‫‪-0.204043‬‬
‫‪3.240479‬‬
‫‪-0.969256‬‬
‫‪0.055648‬‬
‫;']‪rgb = xyz2rrgrbrMatrix * [x y z‬‬
‫‪%scaling components to 8-bits values‬‬
‫;))‪r=uint8(rgb(1‬‬
‫;))‪g=uint8(rgb(2‬‬
‫;))‪b=uint8(rgb(3‬‬
‫ﭼﻨﺪ ﻧﮑﺘﻪ در ﻣﻮرد ﺗﺒﺪﯾﻼت ﻓﻮق‪ :‬ﺑﺮاﯼ ﺗﺒﺪﯾﻼت ﻓﻮق ﻣﺎﺗﺮﯾﺲهﺎﯼ ﺗﺒﺪﯾﻞ ﺑﺴﻴﺎر زﯾﺎدﯼ اراﺋﻪ ﺷﺪﻩاﻧﺪ‪ ،‬ﮐﻪ هﺮ ﮐﺪام ﻧﻴﺰ ﻧﺴﺒﺖ ﺑﻪ ﯾﮏ رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ‬
‫اﻧﺠﺎم ﻣﯽﮔﻴﺮﻧﺪ‪ .‬در اﯾﻦ ﻣﻮرد ﻣﺎ از اﺳﺘﺎﻧﺪارد ‪ CIE 1931‬و رﻧﮓ ﻣﺮﺟﻊ اﺳﺘﺎﻧﺪارد ‪ D65‬اﺳﺘﻔﺎدﻩ ﮐﺮدﻩاﯾﻢ‪ .‬ﻧﺘﻴﺠﻪﯼ ﺗﻘﺴﻴﻢ ﺣﺎﺻﻠﻀﺮب ﻣﺎﺗﺮﯾﺲ ورودﯼ در‬
‫ﻣﺎﺗﺮﯾﺲ ﺗﺒﺪﯾﻞ ﺑﺮ رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻌﻤﺎن هﻤﺎن ﻧﺘﻴﺠﻪﯼ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس را ﺧﻮاهﺪ داد‪ .‬در واﻗﻊ اﮔﺮ ﻣﺨﺘﺼﺎت رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ )‪ (X0,Y0,Z0‬ﺑﺎﺷﺪ‪ ،‬ﻧﺘﺎﯾﺞ‬
‫‪X Y Z‬‬
‫ﺗﺒﺪﯾﻠﯽ ﮐﻪ در ﭘﻴﺎدﻩﺳﺎزﯼ ﻓﻮق اراﺋﻪ دادﻩاﯾﻢ‪, , ) ،‬‬
‫‪X 0 Y0 Z 0‬‬
‫( ﯾﺎ هﻤﺎن ﻣﻘﺎدﯾﺮ دﯾﺠﻴﺘﺎل ﺷﺪﻩﯼ )‪ (X,Y,Z‬ﻣﯽﺑﺎﺷﻨﺪ‪ .‬ﻣﺨﺘﺼﺎت رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ در اﯾﻦ‬
‫اﺳﺘﺎﻧﺪارد‪ ،‬در ﺑﺎزﻩﯼ ]‪ [0, 1‬ﻋﺒﺎرﺗﻨﺪ از‪:‬‬
‫)‪D65 Whitepoint: (X0,Y0,Z0) = (0.9504, 1, 1.0889‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪ xyz‬ﯾﺎ ‪xyY‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻓﻀﺎ از ﻓﻀﺎﯼ ‪ XYZ‬ﻣﺸﺘﻖ ﺷﺪﻩ اﺳﺖ و ﻧﻤﺎﯾﺶ ﮐﺮوﻣﺎ‪-‬‬
‫ﻟﻮﻣﺎﯼ ﺁن ﻣﯽﺑﺎﺷﺪ‪ .‬از ﺁﻧﺠﺎﯾﯽ ﮐﻪ ‪ ،x+y+z =1‬در ﻧﺘﻴﺠﻪ ﺑﺎ داﺷﺘﻦ دو ﻣﻘﺪار ‪x‬‬
‫و ‪ y‬ﻣﻘﺪار ‪ z‬ﻧﻴﺰ ﺑﺮاﺣﺘﯽ ﺑﺪﺳﺖ ﻣﯽﺁﯾﺪ‪ ،‬ﻟﺬا اﯾﻦ ﻓﻀﺎ را ﺑﺎ ‪ xyY‬ﻧﻴﺰ ﻧﻤﺎﯾﺶ‬
‫ﻣﯽدهﻨﺪ‪ .‬اﺳﺘﻔﺎدﻩ از اﯾﻦ ﻓﻀﺎ در ﻣﻮاردﯼ ﻣﻔﻴﺪ اﺳﺖ ﮐﻪ ﺑﺨﻮاهﻴﻢ ﺑﻪ ﯾﮏ ﻓﻀﺎﯼ‬
‫دوﺑﻌﺪﯼ ﻣﺴﺘﻘﻞ از ﺷﺪت ﻧﻮر ﺑﺮوﯾﻢ‪ Y .‬در اﯾﻦ ﻣﺪل ﻟﻮﻣﻴﻨﺎﻧﺲ و ‪ x‬و ‪ y‬ﮐﺮوﻣﺎ‬
‫هﺴﺘﻨﺪ‪ .‬در ﻧﺘﻴﺠﻪ دو ﻣﻘﺪار رﻧﮓ ﮐﻪ ﻓﻘﻂ در ﺷﺪت ﻧﻮر ﻣﺘﻔﺎوت هﺴﺘﻨﺪ‪ ،‬در‬
‫ﻓﻀﺎﯼ ‪ xy‬داراﯼ ﻣﻘﺎدﯾﺮ ﯾﮑﺴﺎﻧﯽ ﻣﯽﺑﺎﺷﻨﺪ‪ .‬ﺑﺮاﯼ رﻓﺘﻦ ﺑﻪ اﯾﻦ ﻓﻀﺎ‪ ،‬ﮐﺎﻓﯽ‬
‫اﺳﺖ از ﻧﻤﺎﯾﺶ دوم ﻓﻀﺎﯼ ‪ XYZ‬ﮐﻪ در ﺑﺎﻻ ﺗﻮﺿﻴﺢ دادﻩ ﺷﺪ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﻢ‪ .‬زﯾﺮ‬
‫ﻓﻀﺎﯼ ﮐﺮوﻣﻴﻨﺎﻧﺲ در ﺷﮑﻞ روﺑﺮو ﻧﻤﺎﯾﺶ دادﻩ ﺷﺪﻩ اﺳﺖ‪ .‬ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ‬
‫ﻓﻮق ﻧﻴﺰ‪ ،‬اﮔﺮ ﻣﻘﺎدﯾﺮ ‪ xyY‬و ‪ XYZ‬در ﺑﺎزﻩﯼ ]‪ [0, 1‬ﺑﺎﺷﻨﺪ‪ ،‬ﺑﺼﻮرت زﯾﺮ ﻋﻤﻞ‬
‫ﻣﯽﮐﻨﻴﻢ‪:‬‬
‫‪xY‬‬
‫‪zY (1 − (x + y)) Y‬‬
‫=‪, Y=Y , Z‬‬
‫=‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫=‪X‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬در ﺗﺒﺪﯾﻞ ‪ XYZ‬ﺑﻪ ‪ ،xyY‬اﮔﺮ ‪ X+Y+Z‬ﺑﺮاﺑﺮ ﺻﻔﺮ ﺷﻮد‪،‬‬
‫ﺗﻘﺴﻴﻢ ﺑﺮ ﺻﻔﺮ ﭘﻴﺶ ﻣﯽﺁﯾﺪ‪ .‬در اﯾﻦ ﺣﺎﻟﺖ ‪ x‬و ‪ y‬را ﻣﯽﺗﻮان ﻣﯽﺗﻮان ﻣﺨﺘﺼﺎت‬
‫زﯾﺮﻓﻀﺎﯼ ﮐﺮوﻣﻴﻨﺎﻧﺲ ‪xz‬‬
‫رﻧﮕﻴﻨﮕﯽ ﺳﻔﻴﺪ ﻣﺮﺟﻊ در ﻧﻈﺮ ﮔﺮﻓﺖ‪ ،‬ﯾﻌﻨﯽ‪.(x,y) = (0,0) :‬‬
‫در ﺗﺒﺪﯾﻞ ﻣﻌﮑﻮس هﻢ اﮔﺮ ‪ y=0‬ﺑﺎﺷﺪ‪ ،(X,Y,Z) = (0,0,0) ،‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽﺷﻮد‪.‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫)‪[x y l] = xyz2xyl (x, y, z‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ‪ XYZ‬را ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺑﻪ ﯾﮏ ﭘﻴﮑﺴﻞ ‪ xyY‬ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪ .‬ﺗﻮﺟﻪ داﺷﺘﻪ‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪6‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫ﺑﺎﺷﻴﺪ ﮐﻪ ‪ Y‬را ﮐﻪ ﻧﺸﺎﻧﮕﺮ ﻟﻮﻣﻴﻨﺎﻧﺲ ﻣﯽﺑﺎﺷﺪ‪ ،‬ﺑﺎ ‪ L‬ﮐﻮﭼﮏ ﻧﺸﺎن دادﻩاﯾﻢ‪.‬‬
‫;‪l = y‬‬
‫;‪sum = x+y+z‬‬
‫)‪if (sum == 0‬‬
‫‪%Preventing devide by zero‬‬
‫;‪x = 0‬‬
‫;‪y = 0‬‬
‫‪else‬‬
‫;‪x = x/sum‬‬
‫;‪y = y/sum‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪x = uint8(x*255‬‬
‫;)‪y = uint8(y*255‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫)‪[x y z] = xyl2xyz (x, y, l‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ‪ xyY‬را ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺑﻪ ﯾﮏ ﭘﻴﮑﺴﻞ ‪ XYZ‬ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪ .‬ﺗﻮﺟﻪ داﺷﺘﻪ‬
‫ﺑﺎﺷﻴﺪ ﮐﻪ ‪ Y‬را ﮐﻪ ﻧﺸﺎﻧﮕﺮ ﻟﻮﻣﻴﻨﺎﻧﺲ ﻣﯽﺑﺎﺷﺪ‪ ،‬در ﻓﻀﺎﯼ ‪ xyY‬ﺑﺎ ‪ L‬ﮐﻮﭼﮏ ﻧﺸﺎن دادﻩاﯾﻢ‪.‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪x = double(x)/255‬‬
‫;‪y = double(y)/255‬‬
‫;‪l = double(l)/255‬‬
‫;)‪z = 1-(x+y‬‬
‫)‪if (y == 0‬‬
‫‪% preventing devide by zero.‬‬
‫;‪x = 0‬‬
‫;‪y = 0‬‬
‫;‪z = 0‬‬
‫‪else‬‬
‫;‪x = (x/y) * l‬‬
‫;‪z = (z/y) * l‬‬
‫;‪y = l‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪x = uint8(x*255‬‬
‫;)‪y = uint8(y*255‬‬
‫;)‪z = uint8(z*255‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪CMY‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻣﺪل ﺑﺮ ﭘﺎﯾﻪﯼ رﻧﮓهﺎﯼ ﻓﻴﺮوزﻩاﯼ )‪ ، (Cyan‬ﺑﻨﻔﺶ )‪ (Magenta‬و زرد )‪ (Yellow‬ﻣﯽﺑﺎﺷﺪ‪ .‬ﺑﺴﻴﺎري از وﺳﺎﻳﻞ ﻣﺎﻧﻨﺪ ﭘﺮﻳﻨﺘﺮهﺎي رﻧﮕﻲ و‬
‫دﺳﺘﮕﺎﻩ هﺎي ﮐﭙﻲ ﮐﻨﻨﺪﻩ ﮐﻪ ذرات رﻧﮕﻲ را ﺑﺮ روي ﮐﺎﻏﺬهﺎ ﻣﻲ ﻧﺸﺎﻧﻨﺪ‪ ،‬ﺑﺮاي ﮐﺎر ﺧﻮد ﻧﻴﺎز ﺑﻪ اﻃﻼﻋﺎت ورودي ‪ CMY‬دارﻧﺪ‪ .‬هﻤﭽﻨﻴﻦ اﻳﻦ دﺳﺘﮕﺎﻩهﺎ ﻗﺎدرﻧﺪ‬
‫ﺗﺒﺪﻳﻞ اﻃﻼﻋﺎت در ﺳﻴﺴﺘﻢ ‪ CMY‬ﺑﻪ اﻃﻼﻋﺎت در ﺳﻴﺴﺘﻢ ‪ RGB‬را ﺑﻪ ﺻﻮرت دروﻧﻲ اﻧﺠﺎم دهﻨﺪ‪ .‬اﻳﻦ ﺗﺒﺪﻳﻞ ﺗﻮﺳﻂ راﺑﻄﻪﯼ ﺳﺎدﻩﯼ زﻳﺮ اﻧﺠﺎم ﻣﻲ ﺷﻮد‪:‬‬
‫⎤ ‪⎡ C ⎤ ⎡1⎤ ⎡R‬‬
‫⎥ ⎢ ⎥ ⎢ ⎥ ⎢‬
‫⎥ ‪⎢M⎥ = ⎢1⎥ − ⎢ G‬‬
‫⎦⎥ ‪⎢⎣ Y ⎥⎦ ⎢⎣1⎥⎦ ⎢⎣ B‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪7‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫)‪[c m y] = rgb2cmy (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ﺑﺎ ﻣﻘﺪار ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را ﺑﻪ ﻓﻀﺎﯼ ‪ CMY‬ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﻣﯽﺑﺮد‪.‬‬
‫;]‪cmy = 255 - [r g b‬‬
‫;)‪c = cmy(1‬‬
‫;)‪m = cmy(2‬‬
‫;)‪y = cmy(3‬‬
‫)‪[r g b] = cmy2rgb (c, m, y‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ﺑﺎ ﻣﻘﺪار ‪ ٨‬ﺑﻴﺘﯽ ‪ CMY‬را ﺑﻪ ﻓﻀﺎﯼ ‪ RGB‬ﺑﺎ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺑﺮ ﻣﯽﮔﺮداﻧﺪ‪.‬‬
‫;]‪rgb = 255 - [c m y‬‬
‫;)‪r = rgb(1‬‬
‫;)‪g = rgb(2‬‬
‫;)‪b = rgb(3‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪CMYK‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻓﻀﺎﯼ رﻧﮓ هﻤﺎن ﻓﻀﺎﯼ رﻧﮓ ‪ CMY‬ﻣﯽﺑﺎﺷﺪ ﮐﻪ ﺟﺰء ‪ ،K‬ﯾﻌﻨﯽ رﻧﮓ ﺳﻴﺎﻩ ﺑﻪ ﺁن اﺿﺎﻓﻪ ﺷﺪﻩ اﺳﺖ‪ .‬از ﺁنﺟﺎﯾﯽ ﮐﻪ در ﭼﺎﭘﮕﺮهﺎ و ﺳﺎﯾﺮ‬
‫وﺳﺎﯾﻠﯽ ﮐﻪ از ﭘﻮدرهﺎ و ذرات رﻧﮕﯽ اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻨﺪ‪ ،‬هﺰﯾﻨﻪﯼ ﺗﻮﻟﻴﺪ رﻧﮓ ﺳﻴﺎﻩ ﮐﻪ ﻣﯽﺗﻮاﻧﺪ ﻣﺴﺘﻘﻴﻤﺎ از دودﻩ ﺗﻮﻟﻴﺪ ﺷﻮد‪ ،‬از ﺳﻪ ﺟﺰء رﻧﮕﯽ دﯾﮕﺮ‪ ،‬ﺑﺴﻴﺎر‬
‫هﺰﯾﻨﻪﺑﺮ ﻣﯽﺑﺎﺷﺪ‪ ،‬ﺗﻮﻟﻴﺪ اﯾﻦ ﻓﻀﺎﯼ رﻧﮕﯽ ﺟﺪﯾﺪ ﺑﺮاﯼ ﻣﻘﺎدﯾﺮ ﺳﻄﻮح ﺧﺎﮐﺴﺘﺮﯼ ﻣﻨﻄﻘﯽ ﺑﻪ ﻧﻈﺮ ﻣﯽرﺳﺪ‪.‬‬
‫)‪K = min(C,M, Y‬‬
‫)‪C = (C − K) /(1 − K‬‬
‫)‪M = (M − K) /(1 − K‬‬
‫)‪Y = (Y − K) /(1 − K‬‬
‫)‪C = min(1, C(1 − K) + K‬‬
‫)‪M = min(1,M(1 − K) + K‬‬
‫)‪Y = min(1, Y(1 − K) + K‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ CMY‬ﺑﻪ ﻓﻀﺎﯼ ‪ CMYK‬و ﺑﺎﻟﻌﮑﺲ‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫)‪[c m y k] = cmy2cmyk (c, m, y‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ﺑﺎ ﻣﻘﺪار ‪ ٨‬ﺑﻴﺘﯽ ‪ CMY‬را ﺑﻪ ﭘﻴﮑﺴﻞ ‪ ٨‬ﺑﻴﺘﯽ ‪ CMYK‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪ K .‬ﻣﻘﺪار رﻧﮓ ﺧﺎﮐﺴﺘﺮﯼ‬
‫ﺧﺎﻟﺺ ﺑﻪﮐﺎر رﻓﺘﻪ در رﻧﮓ ﻣﯽﺑﺎﺷﺪ‪ ،‬ﮐﻪ اﺳﺘﺨﺮاج ﺷﺪﻩ و ﻣﻘﺪار ﺁن از ﻣﻘﺎدﯾﺮ ‪ M ،C‬و ‪ Y‬ﮐﺴﺮ ﺷﺪﻩاﻧﺪ‪.‬‬
‫]‪% scaling components to [0,1‬‬
‫;‪cn = double(c)/255‬‬
‫;‪mc = double(m)/255‬‬
‫;‪yn = double(y)/255‬‬
‫;)]‪k = min([cn mn yn‬‬
‫;)‪c = (cn-k)/(1-k‬‬
‫;)‪m = (mn-k)/(1-k‬‬
‫;)‪y = (yn-k)/(1-k‬‬
‫‪%scaling components to 8-bits values‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪8‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫;)‪cmyk = uint8([c m y k]*255‬‬
‫;)‪c = cmyk(1‬‬
‫;)‪m = cmyk(2‬‬
‫;)‪y = cmyk(3‬‬
‫;)‪k = cmyk(4‬‬
‫)‪[c m y] = cmyk2cmy (c, m, y, k‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﭘﻴﮑﺴﻞ ﺑﺎ ﻣﻘﺪار ‪ ٨‬ﺑﻴﺘﯽ ‪ CMYK‬را ﺑﻪ ﭘﻴﮑﺴﻞ ‪ ٨‬ﺑﻴﺘﯽ ‪ CMY‬ﺑﺮ ﻣﯽﮔﺮداﻧﺪ‪.‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪cmykn = [c m y k]/255‬‬
‫;))‪c = min (1, cmykn(1)*(1-cmykn(4))+cmykn(4‬‬
‫;))‪m = min (1, cmykn(2)*(1-cmykn(4))+cmykn(4‬‬
‫;))‪y = min (1, cmykn(3)*(1-cmykn(4))+cmykn(4‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪[c m y] = Scale28bit(c,m,y‬‬
‫ﻓﻀﺎهﺎﯼ رﻧﮓ اﻧﺘﻘﺎل ﺗﻠﻮﯾﺰﯾﻮﻧﯽ‬
‫‪ YIQ‬و ‪ YUV‬اﺳﺘﺎﻧﺪارد ﺗﻠﻮﯾﺰﯾﻮنهﺎﯼ ﺁﻧﺎﻟﻮگ و ‪ YCbCr‬اﺳﺘﺎﻧﺪارد ﺗﻠﻮﯾﺰﯾﻮن دﯾﺠﻴﺘﺎل ﻣﯽﺑﺎﺷﻨﺪ‪ .‬در اﯾﻦ ﻓﻀﺎهﺎ اﻃﻼﻋﺎت رﻧﮕﯽ ﺑﻪ دو ﺟﺰء ﻟﻮﻣﻴﻨﺎﻧﺲ و‬
‫ﮐﺮوﻣﻴﻨﺎﻧﺲ ﺗﺒﺪﯾﻞ ﻣﯽﺷﻮﻧﺪ‪ ،‬در ﻧﺘﻴﺠﻪ اﻣﮑﺎن ﺧﻮﺑﯽ ﺑﺮاﯼ ﺗﻄﺎﺑﻖ ﺑﺎ ﺗﻠﻮﯾﺰﯾﻮنهﺎﯼ ﺳﻴﺎﻩ و ﺳﻔﻴﺪ و هﻤﭽﻨﻴﻦ ﮐﺎرﺑﺮدهﺎﯼ ﻓﺸﺮدﻩﺳﺎزﯼ در اﺧﺘﻴﺎر ﻗﺮار‬
‫ﻣﯽدهﻨﺪ‪ .‬ﻓﻀﺎﯼ رﻧﮓ ‪ YCC‬ﻧﻴﺰ ﮐﻪ از هﻤﻴﻦ ﺧﺎﻧﻮادﻩ ﻣﯽﺑﺎﺷﺪ‪ ،‬ﺗﻮﺳﻂ ﺷﺮﮐﺖ ﮐﺪاﮎ ﻣﻮرد اﺳﺘﻔﺎدﻩ ﻗﺮار ﻣﯽﮔﻴﺮد‪ YUV .‬اﺳﺘﺎﻧﺪارد ﺳﻴﺴﺘﻢهﺎﯼ ‪ NTSC‬و‬
‫‪ YIQ‬اﺳﺘﺎﻧﺪارد ﺳﻴﺴﺘﻢهﺎﯼ ‪ PAL‬ﻣﯽﺑﺎﺷﺪ‪.‬‬
‫ﻓﻀﺎهﺎﯾﯽ رﻧﮕﻲ ‪ YIQ‬و ‪YUV‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻓﻀﺎهﺎ ﺑﺎ ﺗﻐﻴﻴﺮات ﮐﻮﭼﮑﻲ از روي ﻣﺪل '‪ R'G'B‬ﺑﺪﺳﺖ ﺁﻣﺪﻩ اﺳﺖ‪ .‬اﻳﻦ ﺗﻐﻴﻴﺮات ﺑﺮاي ﺁن اﺳﺖ ﮐﻪ ﻣﺪل ﺟﺪﻳﺪ ﺑﺮاي اﻧﺘﻘﺎل‪ ،‬ﻧﺴﺒﺖ ﺑﻪ‬
‫ﻣﺪل ‪ RGB‬ﮐﺎرﺁﻣﺪﺗﺮ ﺷﻮد و هﻤﻴﻦ ﻃﻮر ﺑﺎ ﺳﻴﺴﺘﻢ ﺗﻠﻮﻳﺰﻳﻮن هﺎي ﺳﻴﺎﻩ و ﺳﻔﻴﺪ‪ ،‬ﺳﺎزﮔﺎر ﮔﺮدد‪ .‬در ﺣﻘﻴﻘﺖ ﺟﺰء ‪ Y‬از اﯾﻦ ﻓﻀﺎهﺎ اﻃﻼﻋﺎت وﻳﺪﻳﻮﻳﻲ ﻣﻮرد ﻧﻴﺎز‬
‫ﻳﮏ ﺳﻴﺴﺘﻢ ﺗﻠﻮﻳﺰﻳﻮن ﺳﻴﺎﻩ و ﺳﻔﻴﺪ را ﺑﻄﻮر ﮐﺎﻣﻞ ﺗﺎﻣﻴﻦ ﻣﻲ ﮐﻨﺪ‪ .‬ﺑﺮاي ﺗﺒﺪﻳﻞ ﻓﻀﺎﯼ ‪ RGB‬ﺑﻪ ﻓﻀﺎهﺎﯼ ‪ YIQ‬و ‪ YUV‬و ﺑﺎﻟﻌﮑﺲ از رواﺑﻂ زﻳﺮ اﺳﺘﻔﺎدﻩ‬
‫ﻣﻲﺷﻮد‪:‬‬
‫⎤ ‪0.6199 ⎤ ⎡Y‬‬
‫‪⎡R ' ⎤ ⎡1 0.9557‬‬
‫⎢ ⎥ ⎢‬
‫⎥ ⎢⎥‬
‫'‬
‫‪1‬‬
‫‪0.2716‬‬
‫⎥ ‪0.6469 ⎥ ⎢ I‬‬
‫=‬
‫‪−‬‬
‫‪−‬‬
‫‪G‬‬
‫⎢ ⎥ ⎢‬
‫⎦⎥ ‪⎢⎣B ' ⎥⎦ ⎢⎣1 −1.1082 1.7051 ⎥⎦ ⎢⎣Q‬‬
‫⎤'‬
‫⎥‬
‫⎥'‬
‫⎦⎥ '‬
‫‪⎡Y ⎤ ⎡0.299 0.587 0.114 ⎤ ⎡R‬‬
‫⎢ ⎥ ⎢‬
‫⎢⎥‬
‫‪⎢ I ⎥ = ⎢0.596 −0.275 −0.321⎥ ⎢G‬‬
‫‪⎢⎣Q ⎥⎦ ⎢⎣0.212 −0.523 0.311 ⎥⎦ ⎢⎣B‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﺑﻪ ﻓﻀﺎﯼ ‪) YIQ‬ﺳﻴﺴﺘﻢ ‪ (PAL‬و ﺑﺎﻟﻌﮑﺲ‬
‫‪0‬‬
‫⎤ ‪1.1398⎤ ⎡Y‬‬
‫⎥ ⎢⎥‬
‫⎥ ‪−0.3946 −0.5805⎥ ⎢U‬‬
‫⎥⎦ ‪2.0320 −0.0005⎦⎥ ⎣⎢V‬‬
‫‪⎡R ' ⎤ ⎡1‬‬
‫⎢ ⎥ ⎢‬
‫‪⎢G '⎥ = ⎢1‬‬
‫‪⎣⎢B ' ⎦⎥ ⎢⎣1‬‬
‫⎤ ' ‪⎡Y ⎤ ⎡ 0.299 0.587 0.114 ⎤ ⎡R‬‬
‫⎢ ⎥ ⎢‬
‫⎥ ⎢⎥‬
‫⎥' ‪⎢U ⎥ = ⎢ −0.147 −0.289 0.436 ⎥ ⎢G‬‬
‫⎥⎦ ' ‪⎣⎢V ⎦⎥ ⎢⎣ 0.615 −0.515 −0.100 ⎦⎥ ⎣⎢B‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﺑﻪ ﻓﻀﺎﯼ ‪) YUV‬ﺳﻴﺴﺘﻢ ‪ (NTSC‬و ﺑﺎﻟﻌﮑﺲ‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﮐﻪ‪:‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪9‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫)‪U = 0.492 (B'-Y) , V = 0.877(R'-Y‬‬
‫و ‪Q = V sin 33 + U cos 33‬‬
‫‪I = V cos 33 – U sin 33 ,‬‬
‫ﺣﺴﺎﺳﻴﺖ ﺳﻴﺴﺘﻢ ﺑﻴﻨﺎﻳﻲ اﻧﺴﺎن ﺑﻪ ﺗﻐﻴﻴﺮات روﺷﻨﺎﻳﻲ ﺑﻴﺸﺘﺮ از ﺣﺴﺎﺳﻴﺖ ﺁن ﺑﻪ ﺗﻪرﻧﮓ‬
‫‪8‬‬
‫و اﺷﺒﺎع‬
‫‪9‬‬
‫اﺳﺖ و ﻓﻀﺎهﺎﯼ ‪ YIQ‬و ‪ YUV‬ﺑﻪﮔﻮﻧﻪاي ﻃﺮاﺣﻲ‬
‫ﺷﺪﻩاﻧﺪ ﮐﻪ از اﻳﻦ ﺧﺎﺻﻴﺖ اﺳﺘﻔﺎدﻩ ﮐﻨﻨﺪ‪ .‬ﺑﻪ هﻤﻴﻦ دﻟﻴﻞ در اﺳﺘﺎﻧﺪاردهﺎي ﻣﻨﻄﺒﻖ ﺑﺮ اﯾﻦ ﻓﻀﺎهﺎ ‪ ،‬ﺑﻴﺸﺘﺮ ﭘﻬﻨﺎي ﺑﺎﻧﺪ ) ﺗﻌﺪاد ﺑﻴﺖ در رﻧﮓ دﻳﺠﻴﺘﺎل ( در‬
‫دﺳﺘﺮس را‪ ،‬ﺑﻪ ﭘﺎراﻣﺘﺮ‪ Y‬اﺧﺘﺼﺎص ﻣﻲدهﻨﺪ و ﭘﻬﻨﺎي ﺑﺎﻧﺪ ﮐﻤﺘﺮي را ﺑﺮاي اﺟﺰاﯼ ﮐﺮوﻣﻴﻨﺎﻧﺲ ﻧﮕﻪ ﻣﻲدارﻧﺪ‪.‬‬
‫ﻣﺰﻳﺖ ﻋﻤﺪﻩ دﻳﮕﺮي ﮐﻪ اﯾﻦ ﻓﻀﺎهﺎ ﻧﺴﺒﺖ ﺑﻪ ﻣﺪل ‪ RGB‬دارﻧﺪ ﺁن اﺳﺖ ﮐﻪ ﭘﺎراﻣﺘﺮ ﻣﺸﺨﺺ ﮐﻨﻨﺪﻩ روﺷﻨﺎﻳﻲ ‪ Y‬از دو ﭘﺎراﻣﺘﺮ ﻣﺸﺨﺺ ﮐﻨﻨﺪﻩ رﻧﮓ ﺟﺪا اﺳﺖ‪.‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺁن ﮐﻪ ﻣﺘﻐﻴﺮ روﺷﻨﺎﻳﻲ ﻣﺘﻨﺎﺳﺐ ﺑﺎ ﻣﻘﺪار ﻧﻮري اﺳﺖ ﮐﻪ ﭼﺸﻢ ﺑﻴﻨﻨﺪﻩ درﻳﺎﻓﺖ ﻣﻲ ﮐﻨﺪ‪ ،‬ﺑﺎ اﺳﺘﻔﺎدﻩ از اﻳﻦ ﺧﺎﺻﻴﺖ ﻣﻲ ﺗﻮان روﺷﻨﺎﻳﻲ ﻳﮏ‬
‫ﺗﺼﻮﻳﺮ را ﺗﻐﻴﻴﺮ داد ﺑﺪون ﺁﻧﮑﻪ در ﺗﺮﮐﻴﺐ رﻧﮓ ﺁن ﺗﻐﻴﻴﺮي اﻳﺠﺎد ﺷﻮد‪ .‬ﺑﺮاي ﻣﺜﺎل ﻣﻲ ﺗﻮان ﺗﮑﻨﻴﮏ ﻳﮑﺴﺎن ﺳﺎزي هﻴﺴﺘﻮﮔﺮام‬
‫‪10‬‬
‫را ﺗﻨﻬﺎ در ﻣﻮرد ﭘﺎراﻣﺘﺮ ‪ Y‬از‬
‫ﺗﺼﻮﻳﺮي ﺑﺎ ﻓﺮﻣﺖ ‪ YIQ‬ﯾﺎ ‪ YUV‬اﻋﻤﺎل ﮐﺮد‪ .‬در اﻳﻦ ﺣﺎﻟﺖ رﻧﮓ ﺗﺼﻮﻳﺮ ﺗﻐﻴﻴﺮي ﻧﺨﻮاهﺪ ﮐﺮد‪.‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬ﺑﺎ ﺗﺒﺪﯾﻼت ﻓﻮق‪ ،‬ﺑﺮاﯼ ﻓﻀﺎﯼ ‪ YIQ‬اﮔﺮ از '‪ R'G'B‬اﺳﺘﺎﻧﺪارد اﺳﺘﻔﺎدﻩ ﺷﻮد ﮐﻪ ﻣﻘﺎدﯾﺮ ﻣﻮﻟﻔﻪهﺎﯼ ﺁن ﺑﻴﻦ ‪ ٠‬و ‪ ٢۵۵‬ﺑﺎﺷﻨﺪ‪ ،‬ﻣﻘﺎدﯾﺮ ‪Y‬‬
‫ﺑﻴﻦ ‪ ٠‬و ‪ ،I ،٢۵۵‬ﺑﻴﻦ ‪ -١۵٢‬و ‪ ١۵٢+‬وﻣﻘﺎدﯾﺮ ‪ Q‬ﺑﻴﻦ ‪ -١٣۴‬و ‪ +١٣۴‬ﺧﻮاهﻨﺪ ﺑﻮد‪ ،‬ﮐﻪ ﺑﺮاﯼ اﺳﺘﻔﺎدﻩﯼ دﯾﺠﻴﺘﺎل ﺑﺎﯾﺪ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﭘﻴﺪا ﮐﻨﻨﺪ‪ .‬ﺑﺮاﯼ ﻋﮑﺲ اﺳﻦ‬
‫ﺗﺒﺪﯾﻞ ﻧﻴﺰ اﺑﺘﺪا ﺑﺎﯾﺪ ﻣﻘﺎدﯾﺮ دﯾﺠﻴﺘﺎل ﺷﺪﻩ ﺑﻪ هﻤﻴﻦ ﺑﺎزﻩهﺎ ﺑﺎز ﮔﺮداﻧﺪﻩ ﺷﺪﻩ و ﺗﺒﺪﯾﻞ ﻣﻌﮑﻮس ﺑﺮ روﯼ ﺁن ﺻﻮرت ﭘﺬﯾﺮد‪ .‬ﮐﻪ ﻧﺘﺎﯾﺞ ﮐﺎر‪ ،‬دﯾﺠﺘﺎﯾﺰ ﺷﺪﻩ هﺴﺘﻨﺪ‪.‬‬
‫هﭽﻨﻴﻦ ﺑﺮاﯼ ﻓﻀﺎﯼ ‪ YUV‬اﮔﺮ از '‪ R'G'B‬اﺳﺘﺎﻧﺪارد اﺳﺘﻔﺎدﻩ ﺷﻮد ﮐﻪ ﻣﻘﺎدﯾﺮ ﻣﻮﻟﻔﻪهﺎﯼ ﺁن ﺑﻴﻦ ‪ ٠‬و ‪ ٢۵۵‬ﺑﺎﺷﻨﺪ‪ ،‬ﻣﻘﺎدﯾﺮ ‪ Y‬ﺑﻴﻦ ‪ ٠‬و ‪ ،U ،٢۵۵‬ﺑﻴﻦ ‪ -١١٢‬و‬
‫‪ +١١٢‬و ﻣﻘﺎدﯾﺮ ‪ V‬ﺑﻴﻦ ‪ -١۵٧‬و ‪ +١۵٧‬ﺧﻮاهﻨﺪ ﺑﻮد‪ .‬ﺳﺎﯾﺮ ﮔﻔﺘﻪهﺎﯼ ﻓﻮق در اﯾﻦ ﻣﻮرد ﻧﻴﺰ ﺻﺎدق ﻣﯽﺑﺎﺷﻨﺪ‪.‬‬
‫)‪[y i q] = rgb2yiq (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ YIQ‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫'‪%Convert RGB to R'G'B‬‬
‫;)‪[rp gp bp] = GammaCorrectRGB(r,g,b‬‬
‫‪%R'G'B' to YIQ conversion matrix‬‬
‫[=‪rpgpbp2yrirqrMatrix‬‬
‫‪0.299 0.587 0.114‬‬
‫‪0.596 -0.275 -0.321‬‬
‫;]‪0.212 -0.523 0.311‬‬
‫;)']‪yrirqr = rpgpbp2yrirqrMatrix * double([rp gp bp‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪[y i q] = Scale28bit(yrirqr(1),yrirqr(2),yrirqr(3),0,255,-152,152,-134,134‬‬
‫)‪[r g b] = yiq2rgb (y, i, q‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ YIQ‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫‪% scaling components to origin ranges.‬‬
‫;)‪y = MyScale(y, 0,255, 0,255‬‬
‫;)‪i = MyScale(i, 0,255, -152,152‬‬
‫;)‪q = MyScale(q, 0,255, -134,134‬‬
‫‪%YIQ to R'G'B' ConversionMatrix‬‬
‫[=‪yiq2rpgpbpMatrix‬‬
‫‪- hue‬‬
‫‪-saturation‬‬
‫‪- histogram equalization‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪10‬‬
Advanced Information & Communication Technology Center
1 0.9557
1 -0.2716
1 -1.1082
0.6199
-0.6469
1.7051];
rpgpbp = yiq2rpgpbpMatrix * [y i q]';
%Converting R'G'B' to RGB - RGB Components will be in [0,255]
[r g b] = ReverseGammaCorrectRGB(rpgpbp(1),rpgpbp(2),rpgpbp(3));
[y u v] = rgb2yuv (r, g, b)
:‫ﻧﺎم ﺗﺎﺑﻊ‬
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬YUV ‫ ﺑﻴﺘﯽ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬RGB ‫ ﺑﻴﺘﯽ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
:‫ﺗﻮﺻﻴﻒ‬
%Convert RGB to R'G'B'
[rp gp bp] = GammaCorrectRGB(r,g,b);
%R'G'B' to YUV conversion matrix
rpgpbp2yrurvrMatrix=[
0.299 0.587 0.114
-0.147 -0.289 0.436
0.615 -0.515 -0.1];
yrurvr = rpgpbp2yrurvrMatrix * double([rp gp bp]');
%scaling components to 8-bits values
[y u v] = Scale28bit(yrurvr(1),yrurvr(2),yrurvr(3),0,255,-112,112,-157,157);
[r g b] = yuv2rgb (y, u, v)
:‫ﻧﺎم ﺗﺎﺑﻊ‬
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬RGB ‫ ﺑﻴﺘﯽ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬YUV ‫ ﺑﻴﺘﯽ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
:‫ﺗﻮﺻﻴﻒ‬
% scaling components to origin ranges.
y = MyScale(y, 0,255, 0,255);
u = MyScale(u, 0,255, -112,112);
v = MyScale(v, 0,255, -157,157);
%YUV to R'G'B' ConversionMatrix
yuv2rpgpbpMatrix=[
1 0
1.1398
1 -0.3946 -0.5805
1 2.0320 -0.0005];
rpgpbp = yuv2rpgpbpMatrix * [y u v]';
%Converting R'G'B' to RGB - RGB Components will be in [0,255]
[r g b] = ReverseGammaCorrectRGB(rpgpbp(1),rpgpbp(2),rpgpbp(3));
YU'V' ‫ﻓﻀﺎﯼ‬
‫ در‬.‫ ﮐﺮوﻣﺎ ﺑﻮدﻧﺪ ﮐﻪ در ﺁنهﺎ ﮐﺮوﻣﺎ ﺑﻪ دو ﺷﻴﻮﻩﯼ ﻣﺨﺘﻠﻒ ﻧﻤﺎﯾﺶ دادﻩ ﺷﺪﻩ اﺳﺖ‬-‫ هﺮ دو ﺑﻴﺎﻧﮕﺮ ﻓﻀﺎهﺎﯾﯽ ﻟﻮﻣﺎ‬YUV ‫ و‬xyY ‫ ﻓﻀﺎهﺎﯼ رﻧﮓ‬:‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‬
:‫ ﻣﯽﺑﺎﺷﺪ‬xy ‫ ﺗﻐﻴﻴﺮ ﺧﻄﯽ ﯾﺎﻓﺘﻪﯼ‬UV ‫اﺻﻞ‬
11
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
‫‪Advanced Information & Communication Technology Center‬‬
‫⎛‬
‫⎞‬
‫‪2x‬‬
‫⎜=‪U‬‬
‫‪⎟ ,‬‬
‫⎠ ‪⎝ 6y − x + 1.5‬‬
‫⎛‬
‫⎞‬
‫‪3y‬‬
‫⎜=‪V‬‬
‫⎟‬
‫⎠ ‪⎝ 6y − x + 1.5‬‬
‫ﻓﻀﺎﯼ '‪ YU'V‬ﻧﻴﺰ هﻤﺎﻧﻨﺪ ﻓﻀﺎﯼ ‪ YUV‬ﯾﮏ ﺗﻐﻴﻴﺮ ﯾﺎﻓﺘﻪﯼ ﺧﻄﯽ ‪ xyz‬ﺑﻮدﻩ و ﺗﻨﻬﺎ ﺗﻔﺎوت ﺁن ﺑﺎ ‪ YUV‬در اﯾﻦ اﺳﺖ ﮐﻪ‪ ،‬در ﺁن‪ .V' = 1.5 V :‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ‬
‫ﮐﻪ اﮔﺮ ﻣﺴﺘﻘﻴﻤﺎ ﻣﯽﺧﻮاﺳﺘﻴﻢ از ‪ XYZ‬ﺑﻪ ‪ YUV‬ﺣﺮﮐﺖ ﮐﻨﻴﻢ‪ ،‬رواﺑﻂ زﯾﺮ ﺑﺪﺳﺖ ﻣﯽﺁﻣﺪ‪:‬‬
‫‪4X‬‬
‫⎛‬
‫⎞‬
‫⎜=‪U‬‬
‫‪⎟ ,‬‬
‫⎠ ‪⎝ X + 15Y + 3Z‬‬
‫‪6Y‬‬
‫⎛‬
‫⎞‬
‫⎜=‪V‬‬
‫⎟‬
‫⎠ ‪⎝ X + 15Y + 3Z‬‬
‫ﭼﻮن ﻣﺎ در اﯾﻨﺠﺎ ﭘﻴﺎدﻩﺳﺎزﯼهﺎﯼ ‪ ٨‬ﺑﻴﺘﯽ را اﻧﺠﺎم ﻣﯽدهﻴﻢ‪ ،‬و ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎﺳﯽ روﯼ ﻧﺘﺎﯾﺞ ﺑﺪﺳﺖ ﺁﻣﺪﻩ اﻋﻤﺎل ﺧﻮاهﺪ ﺷﺪ‪ ،‬در ﻧﺘﻴﺠﻪ ﻧﺘﺎﯾﺞ ﺣﺎﺻﻞ از رﻓﺘﻦ ﺑﻪ‬
‫دو ﻓﻀﺎﯼ رﻧﮓ ‪ YUV‬و '‪ Y'U'V‬ﯾﮑﺴﺎن ﺧﻮاهﺪ ﺷﺪ‪.‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪YCbCr‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻓﻀﺎﯼ رﻧﮕﯽ ﻧﻴﺰ ﻋﻤﺪﺗﺎ در ﺗﺼﺎوﯾﺮ وﯾﺪﯾﻮﯼ دﯾﺠﻴﺘﺎل و در ﮐﺎرﺑﺮدهﺎﯾﯽ ﮐﻪ روﯼ اﯾﻦ ﺗﺼﺎوﯾﺮ اﻧﺠﺎم ﻣﯽﺷﻮد‪ ،‬ﻣﻮرد اﺳﺘﻔﺎدﻩ ﻗﺮار ﻣﯽﮔﻴﺮد‪.‬‬
‫در اﯾﻦ ﻓﻀﺎﯼ رﻧﮕﯽ‪ Y‬ﻟﻮﻣﻴﻨﺎﻧﺲ ﺑﻮدﻩ و ‪ Cb‬و ‪ Cr‬ﻧﺸﺎندهﻨﺪﻩﯼ ﮐﺮوﻣﻴﻨﺎﻧﺲ ﻣﯽﺑﺎﺷﻨﺪ‪ .‬ﺣﺮﮐﺖ از ﻓﻀﺎﯼ '‪ R'G'B‬ﺑﻪ ‪ YCbCr‬و ﺑﺎﻟﻌﮑﺲ ﺗﻮﺳﻂ ﻣﺎﺗﺮﯾﺲهﺎﯼ‬
‫زﯾﺮ ﻗﺎﺑﻞ اﻧﺠﺎم اﺳﺖ )ﻓﺮض ﺷﺪﻩ اﺳﺖ ﮐﻪ از ﻓﻀﺎﯼ '‪ R'G'B‬دﯾﺠﻴﺘﺎل ﮐﻪ ﻣﻮﻟﻔﻪهﺎﯼ ﺁن در ﺑﺎزﻩﯼ ‪ ٠‬و ‪ ٢۵۵‬واﻗﻊ هﺴﺘﻨﺪ اﺳﺘﻔﺎدﻩ ﺷﺪﻩ اﺳﺖ(‪:‬‬
‫⎤ ' ‪⎡Y 601 ⎤ ⎡ 0.257 0.504 0.098 ⎤ ⎡R‬‬
‫⎢‬
‫⎢ ⎥‬
‫⎥ ⎢⎥‬
‫⎥' ‪⎢ Cb ⎥ = ⎢ −0.148 −0.291 0.439 ⎥ ⎢G‬‬
‫⎦⎥ ' ‪⎢⎣ Cr ⎥⎦ ⎢⎣ 0.439 −0.368 −0.071⎥⎦ ⎢⎣B‬‬
‫‪0‬‬
‫⎤ ‪1.596 ⎤ ⎡Y 601‬‬
‫‪⎡R ' ⎤ ⎡1.164‬‬
‫⎢ ⎥ ⎢‬
‫⎢⎥‬
‫⎥‬
‫‪G‬‬
‫=‬
‫‪−‬‬
‫‪−‬‬
‫'‬
‫‪1.164‬‬
‫‪0.391‬‬
‫⎥ ‪0.813⎥ ⎢ Cb‬‬
‫⎢ ⎥ ⎢‬
‫‪⎢⎣B ' ⎥⎦ ⎢⎣1.164 2.018‬‬
‫⎦⎥ ‪0 ⎥⎦ ⎢⎣ Cr‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ R'G’B‬ﺑﻪ ﻓﻀﺎﯼ ‪ ) YCbCr‬ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد ‪ (۶٠١‬و ﺑﺎﻟﻌﮑﺲ‬
‫و ﯾﺎ ﺑﺎز در ﻓﻀﺎﯼ ورودﯼ و ﺧﺮوﺟﯽ دﯾﺠﻴﺘﺎل ﺑﺎ اﺳﺘﺎﻧﺪارد ‪ ٧٠٩‬ﻣﯽﺗﻮان داﺷﺖ‪:‬‬
‫‪0‬‬
‫⎤ ‪1.793 ⎤ ⎡Y 709‬‬
‫‪⎡R ⎤ ⎡1.164‬‬
‫⎢ ⎥ ⎢‬
‫⎢⎥‬
‫⎥‬
‫‪G‬‬
‫=‬
‫‪−‬‬
‫‪−‬‬
‫‪1.164‬‬
‫‪0.213‬‬
‫⎥ ‪0.534 ⎥ ⎢ Cb‬‬
‫⎢ ⎥ ⎢‬
‫⎥⎦ ‪0 ⎦⎥ ⎣⎢ Cr‬‬
‫‪⎣⎢B ⎦⎥ ⎢⎣1.164 2.115‬‬
‫⎤ ‪0.062 ⎤ ⎡R‬‬
‫‪⎡Y 709 ⎤ ⎡ 0.183 0.614‬‬
‫⎢‬
‫⎢ ⎥‬
‫⎥ ⎢⎥‬
‫‪Cb‬‬
‫=‬
‫‪−‬‬
‫‪−‬‬
‫‪0.101‬‬
‫‪0.338‬‬
‫‪0.439‬‬
‫⎢‬
‫⎢ ⎥‬
‫⎥ ‪⎥ ⎢G‬‬
‫⎥⎦ ‪⎣⎢ Cr ⎦⎥ ⎢⎣ 0.439 −0.399 −0.040 ⎦⎥ ⎣⎢B‬‬
‫ﺗﺒﺪﯾﻞ از ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﺑﻪ ﻓﻀﺎﯼ ‪ ) YCbCr‬ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد ‪ (٧٠٩‬و ﺑﺎﻟﻌﮑﺲ‬
‫دﻗﺖ ﮐﻨﻴﺪ ﮐﻪ از ﻣﻘﺎدﯾﺮ ‪ Cb‬و ‪Cr‬ﯼ ﮐﻪ ﻧﻬﺎﯾﺘﺎ اﺳﺘﻔﺎدﻩ ﻣﯽﺷﻮﻧﺪ‪ ،‬ﻣﻘﺪار ﻟﻮﻣﻴﻨﺎﻧﺲ ﮐﻢ ﺷﺪﻩ اﺳﺖ )اﮔﺮ ﻗﺒﻮل ﻧﺪارﯾﺪ‪ ،‬رواﺑﻂ ﺑﺎﻻ را دوﺑﺎرﻩﻧﻮﯾﺴﯽ و ﺳﺎدﻩ‬
‫ﮐﻨﻴﺪ(‪ ،‬در ﻧﺘﻴﺠﻪ اﯾﻦ اﺟﺰاﯼ ﮐﺮوﻣﻴﻨﺎﻧﺲ ﻣﺴﺘﻘﻞ از ﺗﻐﻴﻴﺮات ﻧﻮرﯼ )اﻧﺮژﯼ( ﺑﻮدﻩ و در ﮐﺎرﺑﺮدهﺎﯾﯽ ﮐﻪ ﻣﺎﯾﻞ ﺑﺎﺷﻴﻢ ﺗﻐﻴﻴﺮات ﻧﻮرﯼ ﮐﻤﺘﺮﯾﻦ ﺗﺎﺛﻴﺮ را داﺷﺘﻪ‬
‫ﺑﺎﺷﻨﺪ‪ ،‬اﺳﺘﻔﺎدﻩ از اﯾﻦ ﺟﺰء ﻣﻨﺎﺳﺐ ﻣﯽﻧﻤﺎﯾﺎﻧﺪ‪.‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬در هﺮ دو ﺗﺒﺪﯾﻞ ﻓﻮق‪ Y ،‬ﺑﺪﺳﺖ ﺁﻣﺪﻩ در ﺑﺎزﻩﯼ ]‪ Cb ،[0, 220‬در ﺑﺎزﻩﯼ ]‪ [-112, 112‬و ‪ Cr‬در ﺑﺎزﻩﯼ ‪ [-112, 112‬ﻗﺮار ﺧﻮاهﻨﺪ‬
‫داﺷﺖ‪ .‬در ﻧﺘﻴﺠﻪ ﺟﻬﺖ اﺳﺘﻔﺎدﻩ‪ ،‬ﺑﺎﯾﺪ ﺁنهﺎ را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﺑﺎزﻩﯼ ]‪ [0, 255‬ﺗﺒﺪﯾﻞ ﻧﻤﺎﯾﻴﻢ‪ .‬در ﻋﮑﺲ ﺗﺒﺪﯾﻼت ﻓﻮق ﻧﻴﺰ اﺑﺘﺪا ﺑﺎﯾﺪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪،Y‬‬
‫‪ Cb‬و ‪ Cr‬ﺑﻪ ﺑﺎزﻩهﺎﯼ ﻣﻘﺎدﯾﺮ ﺧﻮد ﺑﺮﮔﺸﺘﻪ و ﺳﭙﺲ ﻋﮑﺲ ﺗﺒﺪﯾﻞ را اﻧﺠﺎم داد‪ ،‬ﮐﻪ در ﺁن‪ ،‬ﻧﺘﺎﯾﺞ ‪ ٨‬ﺑﻴﺘﯽ ﺧﻮاهﻨﺪ ﺑﻮد‪.‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫)‪[y601 cb cr] = rgb2y601cbcr (r, g, b‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ YCbCr‬ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد ‪ CIE 601‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫)‪% convert RGB to R'G'B'(gamma corrected‬‬
‫;)‪[rp gp bp] = GammaCorrectRGB(r,g,b‬‬
‫‪%R'G'B' to YCbCr (Standard 601) Conversion Matrix‬‬
‫[=‪rpgpbp2y601rcbrcrrMatrix‬‬
‫‪0.257 0.504 0.098‬‬
‫‪-0.148 -0.291 0.439‬‬
‫;]‪0.439 -0.368 -0.071‬‬
‫;)']‪y601rcbrcrr = rpgpbp2y601rcbrcrrMatrix * double([rp gp bp‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪12‬‬
Advanced Information & Communication Technology Center
%scaling components to 8-bits values
[y601 cb cr] = Scale28bit(y601rcbrcrr(1),y601rcbrcrr(2),y601rcbrcrr(3) ,0,220, -112,112, -112,112);
[r g b] = y601cbcr2rgb (y601, cb, cr)
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬RGB ‫ ﺑﻴﺘﯽ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬CIE 601 ‫ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد‬YCbCr ‫ ﺑﻴﺘﯽ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
:‫ﻧﺎم ﺗﺎﺑﻊ‬
:‫ﺗﻮﺻﻴﻒ‬
% scaling components to origin ranges.
y601 = MyScale(y601, 0,255, 0,220);
cb = MyScale(cb, 0,255, -112,112);
cr = MyScale(cr, 0,255, -112,112);
%YCbCr to R'G'B' Conversion Matrix (Standard 601)
y601cbcr2rpgpbpMatrix=[
1.164 0
1.596
1.164 -0.391 -0.813
1.164 2.018 0];
rpgpbp = y601cbcr2rpgpbpMatrix * [y601 cb cr]';
rp = rpgpbp(1);
gp = rpgpbp(2);
bp = rpgpbp(3);
%Converting R'G'B' to RGB - RGB Components will be in [0,255]
[r g b] = ReverseGammaCorrectRGB(rp,gp,bp);
[y709 cb cr] = rgb2y709cbcr (r, g, b)
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬CIE 709 ‫ ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد‬YCbCr ‫ ﺑﻴﺘﯽ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬RGB ‫ ﺑﻴﺘﯽ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
:‫ﻧﺎم ﺗﺎﺑﻊ‬
:‫ﺗﻮﺻﻴﻒ‬
%RGB to YCbCr (Standard 709) Conversion Matrix
rgb2y709rcbrcrrMatrix=[
0.183 0.614 0.062
-0.101 -0.338 0.439
0.439 -0.399 -0.040];
y709rcbrcrr = rgb2y709rcbrcrrMatrix * double([r g b]');
%scaling components to 8-bits values
[y709 cb cr] = Scale28bit(y709rcbrcrr(1),y709rcbrcrr(2),y709rcbrcrr(3),0,220,-112,112,-112,112);
[r g b] = y709cbcr2rgb (y709, cb, cr)
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬RGB ‫ ﺑﻴﺘﯽ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬CIE 709 ‫ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﻣﻄﺎﺑﻖ اﺳﺘﺎﻧﺪارد‬YCbCr ‫ ﺑﻴﺘﯽ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
% scaling components to origin ranges.
y709 = MyScale(y709, 0,255, 0,220);
cb = MyScale(cb, 0,255, -112,112);
13
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
:‫ﻧﺎم ﺗﺎﺑﻊ‬
:‫ﺗﻮﺻﻴﻒ‬
‫‪Advanced Information & Communication Technology Center‬‬
‫;)‪cr = MyScale(cr, 0,255, -112,112‬‬
‫)‪%YCbCr to RGB Conversion Matrix (Standard 709‬‬
‫[=‪y709cbcr2rgbMatrix‬‬
‫‪1.164 0‬‬
‫‪1.793‬‬
‫‪1.164 -0.213 -0.534‬‬
‫;]‪1.164 2.115 0‬‬
‫;)']‪rgb = uint8(y709cbcr2rgbMatrix * [y709 cb cr‬‬
‫;)‪r = rgb(1‬‬
‫;)‪g = rgb(2‬‬
‫;)‪b = rgb(3‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪Kodak Photo YCC‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬ﮐﺪاﮎ اﯾﻦ ﻓﻀﺎﯼ رﻧﮓ را ﺑﺮاﯼ ‪ encoding‬ﺳﻴﺴﺘﻢهﺎﯼ ‪ PhotoCD‬ﻃﺮاﺣﯽ ﮐﺮد‪ .‬اﯾﻦ ﻓﻀﺎ هﻢ ﺑﺮاﯼ ﺑﮑﺎرﮔﻴﺮﯼ در ﺳﻴﺴﺘﻢهﺎﯼ ﺗﻠﻮﯾﺰﯾﻮﻧﯽ‪-‬‬
‫وﯾﺪﯾﻮﯾﯽ و هﻢ ﺑﺮاﯼ ﺑﮑﺎرﮔﻴﺮﯼ در ﺳﻴﺴﺘﻢهﺎﯼ ﮔﺮاﻓﻴﮏ ﮐﺎﻣﭙﻴﻮﺗﺮﯼ ﻃﺮاﺣﯽ ﺷﺪﻩ اﺳﺖ‪.‬‬
‫ﺑﺮاﯼ ورود ﺑﻪ اﯾﻦ ﻓﻀﺎ‪ ،‬اﺑﺘﺪا ﺑﺮ روﯼ ﻓﻀﺎﯼ ‪ RGB‬ﯾﮏ ﺗﺒﺪﯾﻞ ‪ Gamma Correction‬ﺻﻮرت ﻣﯽﮔﻴﺮدﺗﺎ ﻓﻀﺎﯼ '‪ R'G'B‬ﺑﺪﺳﺖ ﺁﯾﺪ‪ ،‬ﺳﭙﺲ ﺑﺎ اﯾﻦ ﻣﻮﻟﻔﻪهﺎﯼ‬
‫ﺟﺪﯾﺪ وارد ﻓﻀﺎﯼ ‪ YCC‬ﻣﯽﺷﻮﯾﻢ )ﻓﺮض ﺷﺪﻩ اﺳﺖ ﮐﻪ ﻣﻮﻟﻔﻪهﺎﯼ '‪ R'G'B‬دﯾﺠﻴﺘﺎل و در ﺑﺎزﻩﯼ ‪ ٠‬و ‪ ٢۵۵‬ﻣﯽﺑﺎﺷﻨﺪ(‪:‬‬
‫⎤ ' ‪⎡ Luma ⎤ ⎡ Y ⎤ ⎡ 0.213 0.419 0.081 ⎤ ⎡R‬‬
‫⎢‬
‫⎢ ⎥ ⎢ ⎥‬
‫⎥ ⎢⎥‬
‫⎥' ‪⎢ Chroma1 ⎥ = ⎢ C ⎥ = ⎢ −0.131 −0.256 0.387 ⎥ ⎢ G‬‬
‫⎦⎥ ' ‪⎢⎣ Chroma2 ⎥⎦ ⎢⎣ C ⎥⎦ ⎢⎣ 0.373 −0.312 −0.061⎥⎦ ⎢⎣ B‬‬
‫‪ YCC‬اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮﯼ از ﺳﺎﯾﺮ ﻓﻀﺎهﺎﯼ رﻧﮕﯽ ﻣﯽﺗﻮاﻧﺪ ذﺧﻴﺮﻩ ﮐﻨﺪ‪ ،‬ﭼﻮن ‪ G ،R‬و ‪ B‬در ﺁن ﻣﯽﺗﻮاﻧﻨﺪ ﻣﻘﺎدﯾﺮ ﻣﻨﻔﯽ را ﻧﻴﺰ ﺑﭙﺬﯾﺮﻧﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺗﺒﺪﯾﻞ ﻣﻌﮑﻮس ﺁن‬
‫راﺣﺖ ﻧﺒﻮدﻩ و ﺑﻪ ﺳﻴﺴﺘﻢ ﻧﻤﺎﯾﺶ ﻣﻘﺼﺪ ﺑﺴﺘﮕﯽ دارد‪ .‬ﺗﺒﺪﯾﻞ ‪ YCC‬ﺑﻪ ‪ RGB 24bit‬ﺑﺮاﯼ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ‪ CRT‬از رواﺑﻂ زﯾﺮ ﺑﺪﺳﺖ ﻣﯽﺁﯾﺪ‪:‬‬
‫‪0‬‬
‫⎤ ‪1.8811 ⎤ ⎡ Y‬‬
‫‪⎡R ' ⎤ ⎡1.403‬‬
‫⎢ ⎥ ⎢‬
‫⎥ ⎢⎥‬
‫‪G‬‬
‫'‬
‫=‬
‫‪1.403‬‬
‫‪−‬‬
‫‪0.444‬‬
‫⎥ ‪−0.957 ⎥ ⎢ C1‬‬
‫⎢ ⎥ ⎢‬
‫⎦⎥ ‪0 ⎥⎦ ⎢⎣ C2‬‬
‫‪⎣⎢ B ' ⎦⎥ ⎢⎣1.403 2.291‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬ﻣﻘﺎدﯾﺮ ‪ C1،Y‬و ‪ C2‬ﺣﺎﺻﻞ از ﺗﺒﺪﯾﻞ اول ﺑﻪ ﺗﺮﺗﻴﺐ در ﺑﺎزﻩهﺎﯼ ]‪ [-99, 99] ،[0, 182‬و ]‪ [-96, 96‬ﻗﺮار ﺧﻮاهﻨﺪ داﺷﺖ‪ ،‬ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ‬
‫ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﺷﻮﻧﺪ‪ .‬ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق ﻧﻴﺰ‪ ،‬اﺑﺘﺪا ﺑﺎﯾﺪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ﺑﻪ اﯾﻦ ﺑﺎزﻩهﺎ ﺑﺮﮔﺮداﻧﺪﻩ ﺷﺪﻩ و ﺳﭙﺲ ﻋﮑﺲ ﺗﺒﺪﯾﻞ روﯼ ﺁن ﺻﻮرت‬
‫ﭘﺬﯾﺮد‪.‬‬
‫)‪[y c1 c2] = rgb2ycc (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ YCC‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫'‪%Convert RGB to R'G'B‬‬
‫;)‪[rp gp bp] = GammaCorrectRGB(r,g,b‬‬
‫‪%R'G'B' to Kodak YCC Matrix‬‬
‫[=‪rpgpbp2yrcrcrMatrix‬‬
‫‪0.213 0.419 0.081‬‬
‫‪-0.131 -0.256 0.387‬‬
‫;]‪0.373 -0.312 -0.061‬‬
‫;)']‪yrcrcr = rpgpbp2yrcrcrMatrix * double([rp gp bp‬‬
‫;)‪[y c1 c2] = Scale28bit(yrcrcr(1),yrcrcr(2),yrcrcr(3) ,0,182, -99,99, -96,96‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪14‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫)‪[r g b] = ycc2rgb (y, c1, c2‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ YCC‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ ‪ RGB‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫‪% scaling components to origin ranges.‬‬
‫;)‪y = MyScale(y, 0,255, 0,182‬‬
‫;)‪c1 = MyScale(c1, 0,255, -99,99‬‬
‫;)‪c2 = MyScale(c2, 0,255, -96,96‬‬
‫‪%YCC to R'G'B' Conversion Matrix‬‬
‫[=‪ycc2rpgpbpMatrix‬‬
‫‪1.403 0‬‬
‫‪1.8811‬‬
‫‪1.403 -0.444 -0.957‬‬
‫;]‪1.403 2.291 0‬‬
‫;']‪rpgpbp = ycc2rpgpbpMatrix * [y c1 c2‬‬
‫;)‪rp = rpgpbp(1‬‬
‫;)‪gp = rpgpbp(2‬‬
‫;)‪bp = rpgpbp(3‬‬
‫]‪%Converting R'G'B' to RGB - RGB Components will be in [0,255‬‬
‫;)‪[r g b] = ReverseGammaCorrectRGB(rp,gp,bp‬‬
‫ﻓﻀﺎهﺎﯼ رﻧﮓ )‪HSL (Hue, Saturation, Lightness‬‬
‫اﯾﻦ ﻓﻀﺎهﺎﯼ رﻧﮓ ﺷﺒﻴﻪﺗﺮﯾﻦ ﻓﻀﺎ ﺑﻪ ﺳﻴﺴﺘﻢ ﺑﻴﻨﺎﯾﯽ اﻧﺴﺎن ﻣﯽﺑﺎﺷﻨﺪ و در ﭘﺮدازش ﺗﺼﻮﯾﺮ ﻧﻴﺰ ﮐﺎرﺑﺮدهﺎﯼ ﺑﺴﻴﺎرﯼ ﯾﺎﻓﺘﻪ اﻧﺪ‪ ،‬زﯾﺮا از ﻃﺮﻓﯽ دو ﭘﺎراﻣﺘﺮ ‪ H‬و‬
‫‪ S‬ﺑﻪ ﺷﻴﻮﻩ اي ﮐﻪ اﻧﺴﺎنهﺎ رﻧﮓ را ﺗﺸﺨﻴﺺ ﻣﻲدهﻨﺪ‪ ،‬ﺑﺴﻴﺎر ﻧﺰدﻳﮏ هﺴﺘﻨﺪ و از ﻃﺮﻓﯽ دﯾﮕﺮ ﭼﻮن در اﯾﻦ ﻓﻀﺎ ﻧﻴﺰ ‪ L‬از ﺑﻘﻴﻪﯼ رﻧﮓ ﺟﺪا ﺷﺪﻩ اﺳﺖ‪،‬‬
‫ﺑﺮاﯼ ﭘﺮدازشهﺎﯾﯽ ﻧﻈﻴﺮ ‪ Histogram Equalization‬و ‪ ...‬ﻓﻘﻂ ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ ﭘﺮدازشهﺎ روﯼ اﯾﻦ ﻣﻮﻟﻔﻪ ﺻﻮرت ﭘﺬﯾﺮﻧﺪ و ﭘﺲ از اﺗﻤﺎم ﭘﺮدازش وﯾﮋﮔﯽهﺎﯼ‬
‫رﻧﮕﯽ ﺑﺎ ‪ L‬ﭘﺮدازش ﺷﺪﻩ ﺗﺮﮐﻴﺐ ﺷﻮﻧﺪ‪ .‬در اﯾﻦ ﻓﻀﺎﯼ رﻧﮓ‪ Hue ،‬ﺗﻮﺻﻴﻒ ﮐﻨﻨﺪﻩﯼ رﻧﮓ ﺧﺎﻟﺺ اﺳﺖ) ﻣﺎﻧﻨﺪ زرد ﺧﺎﻟﺺ‪ ،‬ﻧﺎرﻧﺠﻲ ﺧﺎﻟﺺ ﻳﺎ ﻗﺮﻣﺰ ﺧﺎﻟﺺ(‪Hue .‬‬
‫ﻧﻮع رﻧﮓ را ﺑﺮ ﺣﺴﺐ درﺟﻪ ) در داﯾﺮﻩاﯼ ﮐﻪ در زﯾﺮ ﻧﺸﺎن دادﻩ ﺷﺪﻩ اﺳﺖ(‪ ،‬ﺑﻴﺎن ﻣﯽﮐﻨﺪ‪ Saturation .‬ﻧﺸﺎن ﻣﻲ دهﺪ ﮐﻪ ﻳﮏ رﻧﮓ ﺧﺎﻟﺺ ﺗﺎ ﭼﻪ ﺣﺪ ﺗﻮﺳﻂ‬
‫ﻧﻮر ﻳﺎ رﻧﮓ ﺳﻔﻴﺪ رﻗﻴﻖ ﺷﺪﻩ اﺳﺖ و ‪ Brightness‬ﻣﻴﺰان ﺷﺪت رﻧﮓ اﺣﺴﺎس ﺷﻮﻧﺪﻩ ﺗﻮﺳﻂ ﺑﻴﻨﻨﺪﻩ را ﻣﯽرﺳﺎﻧﺪ‪.‬‬
‫ﻓﻀﺎهﺎي رﻧﮓ ‪HSL‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪HSI‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬ﺑﺮاﯼ ورود ﺑﻪ ‪ HSI‬از ﻓﻀﺎﯼ ‪ ،RGB‬ﺗﺒﺪﯾﻞ واﺣﺪﯼ وﺟﻮد ﻧﺪارد )ﺑﺪﻟﻴﻞ ﻣﺎهﻴﺖ ﻓﻀﺎﯼ ‪ ،(HSI‬ﺗﺒﺪﯾﻼت ﻣﺨﺘﻠﻔﯽ ﺑﺮاﯼ اﯾﻦ ﻣﻨﻈﻮر اراﺋﻪ ﺷﺪﻩاﻧﺪ‬
‫ﮐﻪ هﺮ ﮐﺪام در ﮐﺎرﺑﺮد ﺧﺎﺻﯽ ﺑﻬﺘﺮ ﻋﻤﻞ ﮐﺮدﻩ اﺳﺖ‪ .‬ﻣﺎ ﺑﺮاﯼ ﺗﺒﺪﯾﻞ ﻓﻀﺎﯼ رﻧﮓ ‪ RGB‬ﺑﻪ ﻓﻀﺎﯼ ‪ ،HSI‬از رواﺑﻂ زﯾﺮ ﮐﻪ در ﮐﺘﺎب ﭘﺮدازش ﺗﺼﻮﯾﺮ ‪ Gonzalez‬درج‬
‫ﺷﺪﻩ اﺳﺖ‪ ،‬اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﻢ‪:‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪15‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫‪if (B > G) then H = 360 − H‬‬
‫‪1‬‬
‫)‪(R − G) + (R − B‬‬
‫‪2‬‬
‫‪,‬‬
‫)‪(R − G)2 + (R − B)(G − B‬‬
‫)‪min(R, G,B‬‬
‫‪R +G+B‬‬
‫‪∠H = cos −1‬‬
‫‪S =1−3‬‬
‫‪I = (R+G+B)/3.‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬اﮔﺮ در ﺗﺒﺪﯾﻼت ﻓﻮق ‪ S=0‬ﺑﺪﺳﺖ ﺁﯾﺪ‪ ،‬ﭼﻮن ‪ H‬هﺮﻣﻘﺪارﯼ ﮐﻪ ﺑﮕﻴﺮد‪ ،‬ﺑﺎز ﻣﻌﺎدل )‪ (0,0,0‬در ‪ RGB‬هﺴﺘﻴﻢ‪ ،‬ﺑﺮاﯼ ﯾﮑﺴﺎنﺳﺎزﯼ ‪ H‬را‬
‫ﺑﺮاﺑﺮ ﺻﻔﺮ در ﻧﻈﺮ ﻣﯽﮔﻴﺮﯾﻢ‪ .‬ﺑﻪﻋﺒﺎرﺗﯽ دﯾﮕﺮ‪ ،‬وﻗﺘﯽ اﺷﺒﺎع ﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬ﻣﻮﻟﻔﻪﯼ ﺗﻪرﻧﮓ ﺗﻌﺮﯾﻒ ﻧﻤﯽﺷﻮد و ‪ H‬ﺑﯽﻣﻌﻨﺎ ﻣﯽﮔﺮدد‪.‬هﻤﭽﻨﺎﻧﮑﻪ اﮔﺮ ‪ I‬ﺻﻔﺮ ﺑﺎﺷﺪ‪،‬‬
‫اﺷﺒﺎع ﺗﻌﺮﯾﻒ ﻧﻤﯽﺷﻮد‪.‬‬
‫)‪[h s i] = rgb2hsi (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ RGB‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ HIS‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫;‪sumrgb = r + g + b‬‬
‫]‪%i is in [0, 255‬‬
‫;‪i = sumrgb/3‬‬
‫;))‪num = 0.5 *((r - g) + (r - b‬‬
‫;))‪den = eps + sqrt((r - g)^2 + (r - b)*(g - b‬‬
‫;)‪theta = acos(num/den‬‬
‫]‪% h is in [0, 2*pi‬‬
‫;‪h = theta‬‬
‫)‪if (b>g‬‬
‫;‪h = 2*pi - h‬‬
‫;‪end‬‬
‫]‪% now h is in [0, 255‬‬
‫;‪h = h/(2*pi) * 255‬‬
‫;)]‪num = min([r g b‬‬
‫‪%preventing devide by zero‬‬
‫)‪if (sumrgb == 0‬‬
‫;‪s = 0‬‬
‫‪else‬‬
‫;‪s = 1 - 3*num / sumrgb‬‬
‫;‪end‬‬
‫]‪% now s is [0,255‬‬
‫;‪s = s*255‬‬
‫‪% if Saturation is 0 then H value is meaningless.‬‬
‫)‪if (s==0‬‬
‫;‪h = 0‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪h = uint8(h‬‬
‫;)‪s = uint8(s‬‬
‫;)‪i = uint8(i‬‬
‫ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق هﻢ ﺑﻪ اﯾﻦ ﺻﻮرت ﻋﻤﻞ ﻣﯽﮐﻨﻴﻢ ﮐﻪ‪:‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪16‬‬
Advanced Information & Communication Technology Center
0D < H ≤ 120D
120D < H ≤ 240D
240D < H ≤ 360D
H=H
H = H − 120D
H = H − 240D
1⎛
S cos H ⎞
r = ⎜1 +
⎟
3⎝
cos (60D − H) ⎠
1
r = (1 − S)
3
r = 1 − (g + b)
g = 1 − (r + b)
1⎛
S cos H ⎞
g = ⎜1 +
⎟
3⎝
cos (60D − H) ⎠
1
g = (1 − S)
3
1
b = (1 − S)
3
b = 1 − (r + g)
1⎛
S cos H ⎞
b = ⎜1 +
⎟
3⎝
cos (60D − H) ⎠
:‫ﺳﭙﺲ‬
R = 3I*r , G=3I*g , B=3I*B
.‫[ ﻗﺮار دارﻧﺪ‬0, 1] ‫ ﺑﺪﺳﺖﺁﻣﺪﻩﯼ ﻓﻮق در ﺑﺎزﻩﯼ‬B ‫ و‬G ،R ‫ﮐﻪ ﻣﻘﺎدﯾﺮ‬
:‫ﻧﺎم ﺗﺎﺑﻊ‬
[r g b] = hsi2rgb (h, s, i)
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬RGB ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬HSI ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
%scaling components to [0,1]
h = double(h)/255;
s = double(s)/255;
i = double(i)/255;
%convert h to radian
h = h*(2*pi);
if (h==0)
h = 2*pi;
end;
a60 = pi/3;
a120 = 2*a60;
a240 = 2*a120;
a360 = 2*pi;
% for more details on conversion refer to toolbox documents
if ((h>0) & (h<=a120))
b = (1/3)*(1-s);
r = (1/3)*(1+(s*cos(h)) / cos(a60-h));
g = 1-(r+b);
end;
if ((h>a120) & (h<=a240))
h = h-a120;
r = (1/3)*(1-s);
g = (1/3)*(1+(s*cos(h))/cos(a60-h));
b = 1-(r+g);
end;
if ((h>a240) & (h<=a360))
h = h-a240;
g = (1/3)*(1-s);
b = (1/3)*(1+(s*cos(h))/cos(a60-h));
r = 1-(g+b);
end;
r = (3*i)*r;
g = (3*i)*g;
b = (3*i)*b;
17
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
:‫ﺗﻮﺻﻴﻒ‬
‫‪Advanced Information & Communication Technology Center‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪r = uint8(255*r‬‬
‫;)‪g = uint8(255*g‬‬
‫;)‪b = uint8(255*b‬‬
‫ﻓﻀﺎﯼ رﻧﮓ ‪HSV‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬ﺑﺮاﯼ اﯾﻦ ﻓﻀﺎ ﻧﻴﺰ ﺗﺒﺪﯾﻼت ﻣﺨﺘﻠﻔﯽ ﭘﻴﺸﻨﻬﺎد ﺷﺪﻩ اﺳﺖ ﮐﻪ در اﯾﻨﺠﺎ ﻣﺎ از ﺗﺒﺪﯾﻞ ‪ Travis‬اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﻢ‪ .‬در اﯾﻨﺠﺎ ﻣﻘﺎدﯾﺮ ‪ G ،R‬و ‪ B‬ﺑﻪﮐﺎر‬
‫رﻓﺘﻪ در ﺑﺎزﻩﯼ ]‪ [0, 1‬ﻧﺮﻣﺎل ﺷﺪﻩاﻧﺪ‪:‬‬
‫) ‪max = max ( R, G,B ) , min = min ( R, G,B‬‬
‫‪max − R‬‬
‫‪max − G‬‬
‫‪max − B‬‬
‫= '‪, G‬‬
‫= '‪, B‬‬
‫‪max − min‬‬
‫‪max − min‬‬
‫‪max − min‬‬
‫‪if S = 0‬‬
‫)‪if (R = max) & (G = min‬‬
‫)‪if (R = max) & (B = min‬‬
‫)‪if (G = max) & (B = min‬‬
‫)‪if (G = max) & (R = min‬‬
‫)‪if (B = max) & (r = min‬‬
‫)‪if(B = max) & (G = min‬‬
‫= '‪R‬‬
‫‪⎧Undefined‬‬
‫⎪‬
‫'‪⎪ 5+B‬‬
‫'‪⎪ 1 − G‬‬
‫⎪‬
‫'‪H = ⎨ 1+R‬‬
‫'‪⎪ 3−B‬‬
‫⎪‬
‫'‪⎪ 3 + G‬‬
‫⎪‬
‫' ‪⎪⎩ 5 − R‬‬
‫‪V = max , S = (max − min) / max‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬در راﺑﻄﻪﯼ ﻓﻮق ‪ H=Undefined‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ رﻧﮓ ﻣﻮرد ﻧﻈﺮ ‪ Hue‬ﻧﺪاﺷﺘﻪ و ﻣﻮﻧﻮﮐﺮوم ﻣﯽﺑﺎﺷﺪ‪ .‬هﻤﭽﻨﻴﻦ در‬
‫ﻣﺤﺎﺳﺒﻪﯼ ‪ ،S‬اﮔﺮ ‪ max‬ﺑﺮاﺑﺮ ﺻﻔﺮ ﺑﺎﺷﺪ‪ ،‬ﯾﻌﻨﯽ )‪ ،(R,G,B) = (0,0,0‬ﮐﻪ در ﺁن ‪ S‬ﺑﺮاﺑﺮ ﺻﻔﺮ اﺳﺖ‪.‬‬
‫ﻣﻘﺎدﯾﺮ ‪ V‬و ‪ S‬ﺑﻴﻦ ﺻﻔﺮ ﺗﺎ ﯾﮏ ﺑﻮدﻩ و ﻣﻘﺪار ‪ H‬ﺑﺎ ﺿﺮب ﮐﺮدن ﺁن در ‪ ۶٠‬درﺟﻪ‪ ،‬ﺑﻴﻦ ﺻﻔﺮ ﺗﺎ ‪ ٣۶٠‬درﺟﻪ ﺧﻮاهﺪ ﺑﻮد‪ ،‬ﮐﻪ اﯾﻦ ﻣﻘﺎدﯾﺮ را در ﺑﺎزﻩﯼ ]‪ [0, 255‬ﺗﻐﻴﻴﺮ‬
‫ﻣﻘﻴﺎس ﻣﯽدهﻴﻢ‪.‬‬
‫)‪[h s v] = rgb2hsv (r, g, b‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ RGB‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ HSV‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪r = double(r)/255‬‬
‫;‪g = double(g)/255‬‬
‫;‪b = double(b)/255‬‬
‫;)]‪Maxrgb = max([r g b‬‬
‫;)]‪Minrgb = min([r g b‬‬
‫;‪v = Maxrgb‬‬
‫;‪delta = Maxrgb - Minrgb‬‬
‫‪if Maxrgb == 0‬‬
‫‪%preventing devide bye zero‬‬
‫;‪s = 0‬‬
‫‪else‬‬
‫;‪s = delta/Maxrgb‬‬
‫;‪end‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪18‬‬
Advanced Information & Communication Technology Center
if s == 0
% if Saturation is Zero, Hue Value is meaningless
h = 0;
else
Rc = (Maxrgb - r) / delta;
Gc = (Maxrgb - g) / delta;
Bc = (Maxrgb - b) / delta;
if ((r == Maxrgb) & (g == Minrgb))
h = 5 + Bc;
elseif ((r == Maxrgb) & (b == Minrgb))
h = 1 - Gc;
elseif ((g == Maxrgb) & (b == Minrgb))
h = 1 + Rc;
elseif ((g == Maxrgb) & (r == Minrgb))
h = 3 - Bc;
elseif ((b == Maxrgb) & (r == Minrgb))
h = 3 + Gc;
elseif ((b == Maxrgb) & (g == Minrgb))
h = 5 - Rc;
end;
end;
%H is in [0,60]
h = h*60;
if (h < 0)
h = h+360;
end;
%scaling components to 8-bits values
h = uint8((h/360)*255);
s = uint8(s*255);
v = uint8(v*255);
:‫[ ﺑﻪ اﯾﻦ ﺻﻮرت ﻋﻤﻞ ﻣﯽﮐﻨﻴﻢ ﮐﻪ‬0, 1] ‫ در ﺑﺎزﻩﯼ‬V ‫ و‬S ‫[ و‬0, 360) ‫ در ﺑﺎزﻩﯼ‬H ‫ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق هﻢ ﺑﺮاﯼ‬
Hex = H / 60, PC = floor(Hex), SC = Hex − PC
a = (1 − S)V , b = (1 − (S * SC))V , c = (1 − (S * (1 − SC)))V
⎧
⎪
⎪
⎪⎪
R, G,B = ⎨
⎪
⎪
⎪
⎪⎩
R = V, G = c, B = a
R = b, G = V, B = a
R = a, G = V , B = c
if (PC = 0)
if (PC = 1)
if (PC = 2)
R = a, G = b, B = V
R = c , G = a, B = V
R = V, G = a, B = b
if (PC = 3)
if (PC = 4)
if (PC = 5)
.‫ ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﺷﻮﻧﺪ‬٨ ‫[ ﺑﻮدﻩ و ﺑﺎﯾﺪ ﺑﻪ ﻣﻘﺎدﯾﺮ‬0, 1] ‫ ﺑﺪﺳﺖ ﺁﻣﺪﻩ در ﺑﺎزﻩﯼ‬B ‫ و‬G ،R ‫ ﺿﻤﻨﺎ ﻣﻘﺎدﯾﺮ‬.R,G,B = V ‫ ﺑﺎﯾﺪ‬،‫ ﺑﺎﺷﺪ‬S=0 ‫ اﮔﺮ‬:‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‬
[r g b] = hsv2rgb (h, s, v)
:‫ﻧﺎم ﺗﺎﺑﻊ‬
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬RGB ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬HSV ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
%Convert h to degree
h = (double(h)/255)*360 ;
19
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
:‫ﺗﻮﺻﻴﻒ‬
‫‪Advanced Information & Communication Technology Center‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪s = double(s)/255‬‬
‫;‪v = double(v)/255‬‬
‫;)‪%if Saturation doesnot exist, RGB=(V,V,V‬‬
‫)‪if (s == 0‬‬
‫;‪r = v‬‬
‫;‪g = v‬‬
‫;‪b = v‬‬
‫‪else‬‬
‫‪if h == 360‬‬
‫;‪h = 0‬‬
‫;‪end‬‬
‫;‪hex = h / 60‬‬
‫;)‪pc = floor(hex‬‬
‫;‪sc = hex - pc‬‬
‫;)‪a = v * (1 - s‬‬
‫;))‪b = v * (1 - (s * sc‬‬
‫;)))‪c = v * (1 - (s * (1 - sc‬‬
‫‪switch pc‬‬
‫‪case 0‬‬
‫;‪r = v; g = c; b = a‬‬
‫‪case 1‬‬
‫;‪r = b; g = v; b = a‬‬
‫‪case 2‬‬
‫;‪r = a; g = v; b = c‬‬
‫‪case 3‬‬
‫;‪r = a; g = b; b = v‬‬
‫‪case 4‬‬
‫;‪r = c; g = a; b = v‬‬
‫‪case 5‬‬
‫;‪r = v; g = a; b = b‬‬
‫;‪end‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪r = uint8(r*255‬‬
‫;)‪g = uint8(g*255‬‬
‫;)‪b = uint8(b*255‬‬
‫ﻓﻀﺎهﺎﯼ رﻧﮓ ﻣﻔﻬﻮﻣﺎ ﯾﮑﻨﻮاﺧﺖ‬
‫اﯾﺪﻩﯼ اﺻﻠﯽ ﻣﻌﺮﻓﯽ اﯾﻦ ﻓﻀﺎهﺎﯼ رﻧﮓ از ﺁﻧﺠﺎ ﺳﺮﭼﺸﻤﻪ ﮔﺮﻓﺘﻪ اﺳﺖ ﮐﻪ ﺗﻔﺎوت ﻣﻔﻬﻮﻣﯽ ﺑﻴﻦ دو رﻧﮓ‪ ،‬ﺑﺮاﺑﺮ ﺗﻔﺎﺿﻞ ﺁنهﺎ در ﻓﻀﺎﯼ رﻧﮓ ‪ XYZ‬ﻧﻴﺴﺖ‪ .‬ﯾﮏ‬
‫ﻓﻀﺎﯼ رﻧﮓ ﯾﮑﻨﻮاﺧﺖ‪ ،‬ﻓﻀﺎﯾﯽ اﺳﺖ ﮐﻪ در ﺁن ﻓﺎﺻﻠﻪﯼ ﻓﻀﺎﯾﯽ ﺑﻴﻦ دو رﻧﮓ‪ ،‬ﺑﺎ ﻗﻀﺎوت ﺑﻴﻨﻨﺪﻩﯼ اﻧﺴﺎﻧﯽ از ﺷﺒﺎهﺖ دو رﻧﮓ‪ ،‬ﻣﺘﻨﺎﻇﺮ ﺑﺎﺷﺪ‪ CIE .‬ﺑﺮاﯼ‬
‫دﺳﺘﻴﺎﺑﯽ ﺑﻪ ﻓﻀﺎﯼ رﻧﮕﯽ ﺑﺎ اﯾﻦ وﯾﮋﮔﯽ در ﺳﺎل ‪ ١٩٧۶‬ﻓﻀﺎهﺎﯼ رﻧﮓ *‪ L*u*v‬و *‪ L*a*b‬را ﺑﺮ ﭘﺎﯾﻪﯼ *‪ L‬ﻣﻌﺮﻓﯽ ﻧﻤﻮد‪ ،‬ﮐﻪ در ﺁن *‪ L‬ﺑﻴﺎﻧﮕﺮ ﻣﻘﺪار‬
‫ﻟﻮﻣﻴﻨﺎﻧﺲ ﯾﮏ رﻧﮓ در ﯾﮏ ﻣﻘﻴﺎس ﻧﻮر ﯾﮑﻨﻮاﺧﺖ ﻣﯽﺑﺎﺷﺪ‪ .‬در ﻓﻀﺎﯼ رﻧﮓ *‪ L*u*v‬اﺟﺰاﯼ *‪ u‬و *‪ v‬ﻧﺴﺨﻪهﺎﯼ ﺗﺒﺪﯾﻞ رﯾﺎﺿﯽ ﯾﺎﻓﺘﻪﯼ ﮐﺮوﻣﺎ ﻣﯽﺑﺎﺷﻨﺪ‪ .‬در‬
‫ﻓﻀﺎﯼ *‪ a* ،L*a*b‬و *‪ b‬ﺑﻴﺎﻧﮕﺮ ﺗﻐﻴﻴﺮات رﻧﮕﯽ ﯾﮑﻨﻮاﺧﺖ ﺑﺮ روﯼ ﻣﺤﻮرهﺎﯼ زرد‪ -‬ﺳﺒﺰ و زرد‪ -‬ﺁﺑﯽ ﻣﯽﺑﺎﺷﻨﺪ‪.‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪20‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫ﻓﻀﺎﯼ رﻧﮓ *‪L*u*v‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬اﯾﻦ ﻓﻀﺎ ﺑﺮ ﭘﺎﯾﻪﯼ '‪ YU'V‬ﻣﯽﺑﺎﺷﺪ‪ .‬ﺑﺮاﯼ ﺣﺮﮐﺖ از ﻓﻀﺎﯼ ‪ XYZ‬ﺑﻪ ﻓﻀﺎﯼ رﻧﮓ *‪ ،L*u*v‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣﯽﮐﻨﻴﻢ‪:‬‬
‫‪Y‬‬
‫‪> 0.008856‬‬
‫‪Y0‬‬
‫‪if‬‬
‫‪Y‬‬
‫‪≤ 0.008856‬‬
‫‪Y0‬‬
‫‪if‬‬
‫‪1‬‬
‫⎧‬
‫‪⎛ ⎞ 3‬‬
‫‪⎪ 116 ⎜ Y ⎟ − 16‬‬
‫⎪‬
‫⎠ ‪⎝ Y0‬‬
‫⎨ =* ‪L‬‬
‫⎞‪⎛ Y‬‬
‫⎪‬
‫⎟ ⎜ ‪⎪ 903.3‬‬
‫⎠ ‪⎝ Y0‬‬
‫⎪⎩‬
‫)‪u* = 13 L*(u′ − u′0‬‬
‫)‪v* = 13 L*(v′ − v′0‬‬
‫ﮐﻪ اﮔﺮ ‪ Y0 ،X0‬و ‪ Z0‬ﻣﺨﺘﺼﺎت رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ ﺑﺎﺷﻨﺪ‪ ،‬ﻣﺜﻼ هﻤﺎن ﻣﺨﺘﺼﺎت ‪ D65‬ﮐﻪ در ﻗﺴﻤﺖهﺎﯼ ﻗﺒﻠﯽ ﻣﻌﺮﻓﯽ ﺷﺪ‪ ،‬ﺁﻧﮕﺎﻩ‪:‬‬
‫‪4X‬‬
‫‪9Y‬‬
‫= '‪U‬‬
‫= '‪, V‬‬
‫‪X + 15Y + 3Z‬‬
‫‪X + 15Y + 3Z‬‬
‫‪4X 0‬‬
‫‪9Y0‬‬
‫= ' ‪U0‬‬
‫= ' ‪, V0‬‬
‫‪X 0 + 15Y0 + 3Z 0‬‬
‫‪X 0 + 15Y0 + 3Z 0‬‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬اول اﯾﻨﮑﻪ اﮔﺮ از ‪ XYZ‬دﯾﺠﻴﺘﺎﻟﯽ ﺷﺪﻩ اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﺪ‪ ،‬ﭼﻮن در اﯾﻦ ﺗﺒﺪﯾﻞ دﯾﺠﻴﺘﺎلﺳﺎزﯼ ﯾﻌﻨﯽ ﺗﻘﺴﻴﻢ ‪ Y ،X‬و ‪ Z‬ﺑﺮ ‪ X0‬و ‪Y0‬و ‪Z0‬‬
‫اﻧﺠﺎم ﺷﺪﻩ اﺳﺖ‪ ،‬در ﻣﺤﺎﺳﺒﻪﯼ *‪ L‬از ‪ Y‬اﺳﺘﻔﺎدﻩ ﻧﻤﺎﯾﻴﺪ‪.‬‬
‫ﺑﻌﺪ از ﺣﺮﮐﺖ از ‪ XYZ‬ﺑﻪ اﯾﻦ ﻓﻀﺎ‪ U ،L ،‬و ‪ V‬ﺑﻪ ﺗﺮﺗﻴﺐ در ﺑﺎزﻩهﺎﯼ ]‪ [-257,705] ،[3, 100‬و ]‪ [-155,171‬ﻗﺮار ﺧﻮاهﻨﺪ داﺷﺖ‪.‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫)‪[L us vs] = xyz2luv (x, y, z‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ XYZ‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ *‪ L*u*v‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪x = double(x)/255‬‬
‫;‪y = double(y)/255‬‬
‫;‪z = double(z)/255‬‬
‫)‪% Reference White point definition (D65‬‬
‫;]‪WP = [0.9504 1 1.0889‬‬
‫;)‪x0 = WP(1‬‬
‫;)‪y0 = WP(2‬‬
‫;)‪z0 = WP(3‬‬
‫‪% scaling components to origin ranges.‬‬
‫;‪x = x*x0‬‬
‫;‪y = y*y0‬‬
‫;‪z = z*z0‬‬
‫*‪%Computing L‬‬
‫)‪if (y > 0.008856‬‬
‫;‪L = 116*(y^(1/3))-16‬‬
‫‪else‬‬
‫;‪L = 903.3 * y‬‬
‫;‪end‬‬
‫)‪if ((x+15*y+3*z)==0‬‬
‫‪%preventing devide by zero‬‬
‫;‪us = 0‬‬
‫;‪vs = 0‬‬
‫‪else‬‬
‫;)‪u = 4*x / (x+15*y+3*z‬‬
‫;)‪v = 9*y / (x+15*y+3*z‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪21‬‬
Advanced Information & Communication Technology Center
%Computing U',V' for rference white point
u0 = 4*x0 / (x0+15*y0+3*z0);
v0 = 9*y0 / (x0+15*y0+3*z0);
%Computing u*,v*
us = 13*L*(u-u0);
vs = 13*L*(v-v0);
end;
%scaling components to 8-bits values
[L us vs] = Scale28bit(L,us,vs, 3,100, -257,705, -155,171);
:‫ ﺳﭙﺲ‬،‫ ﺑﺮﻣﯽﮔﺮداﻧﻴﻢ‬L*u*v* ‫ﺑﺮاﯼ ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق ﻧﻴﺰ اﺑﺘﺪا ﻣﻘﺎدﯾﺮ دﯾﺠﻴﺘﺎﻟﯽ را ﺑﻪ ﻣﻘﺎدﯾﺮ ﺑﺎزﻩهﺎﯼ ﻣﻤﮑﻨﻪﯼ‬
⎧⎛ L + 16 ⎞3
⎪⎜
⎟
⎪
Y = ⎨⎝ 116 ⎠
L
⎪
⎪⎩ 903.3
V ' = V0 +
X=
if L ≤ 7.9996
V
U
, U ' = U0 +
13L
13L
9Y
)
V' ,
4
U '(
if L > 7.9996
9Y
− (X + 15Y)
Z = V'
3
.‫ ﺑﻴﺘﯽ ﺗﺒﺪﯾﻞ ﺷﻮﻧﺪ‬٨ ‫[ ﺑﻮدﻩ و ﺑﺎﯾﺪ ﺑﻪ ﻣﻘﺎدﯾﺮ‬0, 1] ‫ ﺑﺪﺳﺖ ﺁﻣﺪﻩ در ﺑﺎزﻩﯼ‬Z ‫ و‬Y ،X ‫ ﻣﻘﺎدﯾﺮ‬.(X, Y, Z) = (0,0,0) ،‫ ﺑﺎﺷﺪ‬L = 0 ‫ اﮔﺮ‬:‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‬
[x y z] = luv2xyz (l, u, v)
:‫ﻧﺎم ﺗﺎﺑﻊ‬
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬XYZ ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬L*u*v* ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
% scaling components to origin ranges.
l = MyScale(l, 0,255, 3,100);
us = MyScale(us, 0,255, -257,705);
vs = MyScale(vs, 0,255, -155,171);
% Reference White point definition (D65)
WP = [0.9504 1 1.0889];
x0 = WP(1);
y0 = WP(2);
z0 = WP(3);
% Reference white point in YU'V' Space
u0 = 4*x0 / (x0+15*y0+3*z0);
v0 = 9*y0 / (x0+15*y0+3*z0);
%Cmputing Y
if (l>7.9996)
y = ((l+16)/116)^3;
else
y = l/903.3;
end;
% preventing devide by zero
if (l==0)
x = 0;
z = 0;
else
22
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
:‫ﺗﻮﺻﻴﻒ‬
‫‪Advanced Information & Communication Technology Center‬‬
‫;)‪v = v0 + vs/(13*l‬‬
‫;)‪u = u0 + us/(13*l‬‬
‫;‪den = 9*y / v‬‬
‫;‪x = u*den /4‬‬
‫;‪z = (den - (x+15*y))/3‬‬
‫;‪end‬‬
‫‪%scaling components to 8-bits values‬‬
‫;)‪x = uint8(x*255‬‬
‫;)‪y = uint8(y*255‬‬
‫;)‪z = uint8(z*255‬‬
‫ﻓﻀﺎﯼ رﻧﮓ *‪L*a*b‬‬
‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‪ :‬ﺑﺮاﯼ ﺣﺮﮐﺖ از ﻓﻀﺎﯼ رﻧﮓ ‪ XYZ‬ﺑﻪ ﻓﻀﺎﯼ رﻧﮓ *‪ ،L*a*b‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣﯽﮐﻨﻴﻢ)*‪ L‬در اﯾﻦ ﻓﻀﺎ‪ ،‬هﻤﺎن *‪ L‬در ﻓﻀﺎﯼ *‪L*u*v‬‬
‫ﻣﯽﺑﺎﺷﺪ(‪:‬‬
‫⎤⎞ ‪⎛ Y‬‬
‫⎥⎟ ⎜‬
‫⎥⎦ ⎠ ‪⎝Y 0‬‬
‫⎞ ‪⎡ ⎛X‬‬
‫‪⎟ −f‬‬
‫⎠ ‪⎣⎢ ⎝ X 0‬‬
‫⎜ ‪a * = 500 * ⎢f‬‬
‫⎞ ‪⎡ ⎛Y‬‬
‫⎤⎞ ‪⎛ Z‬‬
‫⎥ ⎟ ⎜ ‪b * = 200 * ⎢f ⎜ ⎟ − f‬‬
‫⎠ ‪⎢⎣ ⎝Y 0‬‬
‫⎦⎥ ⎠ ‪⎝ Z 0‬‬
‫ﮐﻪ در ﺁن ‪ Y0 ،X0‬و ‪ Z0‬ﻣﺨﺘﺼﺎت رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ ﻣﯽﺑﺎﺷﻨﺪ‪ a* .‬ﻣﺘﻨﺎﻇﺮ ﻣﺤﻮر ﻗﺮﻣﺰ‪ -‬ﺳﺒﺰ و *‪ b‬ﻣﺘﻨﺎﻇﺮ ﻣﺤﻮر زرد‪ -‬ﺁﺑﯽ ﻣﯽﺑﺎﺷﺪ و ‪ f‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‪:‬‬
‫‪if t > 0.008856‬‬
‫‪if t ≤ 0.008856‬‬
‫‪1‬‬
‫⎧‬
‫‪t3‬‬
‫⎪‬
‫⎨ = )‪f(t‬‬
‫‪16‬‬
‫‪⎪7.787 * t +‬‬
‫‪116‬‬
‫⎩‬
‫ﻧﮑﺘﻪهﺎﯼ ﭘﻴﺎدﻩﺳﺎزﯼ‪ :‬اﮔﺮ از ﻣﻘﺎدﯾﺮ ‪ XYZ‬در ﺑﺎزﻩﯼ ]‪ [0, 255‬اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﻴﺪ‪ ،‬ﻧﻴﺎزﯼ ﺑﻪ ﺗﻘﺴﻴﻢ ﻣﻮﻟﻔﻪهﺎ ﺑﺮ رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ ﻧﻴﺴﺖ‪ .‬ﺑﻌﺪ از اﯾﻦ ﺗﺒﺪﯾﻞ‬
‫ﻣﻘﺎدﯾﺮ *‪ a* ،L‬و *‪ b‬ﺑﻪ ﺗﺮﺗﻴﺐ در ﺑﺎزﻩهﺎﯼ ]‪ [-416, 416] ،[3, 100‬و ]‪ [-167, 167‬ﺧﻮاهﻨﺪ ﺑﻮد‪.‬‬
‫)‪[L a b] = xyz2lab (x, y, z‬‬
‫ﻧﺎم ﺗﺎﺑﻊ‪:‬‬
‫ﺗﻮﺻﻴﻒ‪:‬‬
‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ ‪ XYZ‬را ﺑﻪ ﻣﻘﺎدﯾﺮ ‪ ٨‬ﺑﻴﺘﯽ در ﻓﻀﺎﯼ *‪ L*a*b‬ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‪.‬‬
‫]‪%scaling components to [0,1‬‬
‫;‪x = double(x)/255‬‬
‫;‪y = double(y)/255‬‬
‫;‪z = double(z)/255‬‬
‫*‪%Computing L‬‬
‫)‪if (y > 0.008856‬‬
‫;‪L = 116*(y^(1/3))-16‬‬
‫‪else‬‬
‫;‪L = 903.3 * y‬‬
‫;‪end‬‬
‫)‪%Computing f(X/X0‬‬
‫)‪if (x > 0.008856‬‬
‫;)‪fx = x^(1/3‬‬
‫‪else‬‬
‫;‪fx = 7.787 * x + 16/116‬‬
‫;‪end‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪23‬‬
Advanced Information & Communication Technology Center
%Computing f(Y/Y0)
if (y > 0.008856)
fy = y^(1/3);
else
fy = 7.787 * y + 16/116;
end;
%Computing f(Z/Z0)
if (z > 0.008856)
fz = z^(1/3);
else
fz = 7.787 * z + 16/116;
end;
%Computing a*,b*
a = 500 * (fx - fy);
b = 200 * (fy - fz);
%scaling components to 8-bits values
[L a b] = Scale28bit(L,a,b,3,100, -416,416, -167,167);
‫ﻣﻌﺎدل اﺳﺖ ﺑﺎ‬
X
Z
Y
=
= 0.008856 ‫ و‬L = 7.9996 ‫ﻣﻌﺎدل اﺳﺖ ﺑﺎ‬
= 0.008856 ‫ﺑﺮاﯼ اﻧﺠﺎم دادن ﻋﮑﺲ ﺗﺒﺪﯾﻞ ﻓﻮق اﺑﺘﺪا ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ‬
X0 Z0
Y0
: ‫ در ﻧﺘﻴﺠﻪ‬. f(
⎧⎛ L * +16 ⎞3
⎪
Y ⎪⎜⎝ 116 ⎟⎠
=⎨
Y0 ⎪
L*
⎪⎩ 903.3
L ≥ 7.9996
,
L < 7.9996
1
⎧
⎛ Y ⎞3
⎪
⎜ ⎟
⎛ Y⎞ ⎪
⎝ Y0 ⎠
f⎜ ⎟ = ⎨
Y
⎝ 0⎠ ⎪
Y
16
+
⎪7.787 *
Y
116
0
⎩
X
Z
) = f( ) = 0.206893
X0
Z0
L ≥ 7.9996
L < 7.9996
:‫در ﻧﺘﻴﺠﻪ‬
⎛ X ⎞ a*
⎛ Y⎞
⎛ Z ⎞
⎛ Y ⎞ b*
f⎜ ⎟ =
+f⎜ ⎟ , f⎜ ⎟ = f⎜ ⎟−
X
500
Y
Z
⎝ 0⎠
⎝ 0⎠
⎝ 0⎠
⎝ Y0 ⎠ 200
:‫و ﻧﻬﺎﯾﺘﺎ اﯾﻨﮑﻪ‬
3
⎧
⎛ X ⎞
⎪
f⎜ ⎟
⎪
⎝ X0 ⎠
X
⎪
= ⎨⎛ ⎛ X ⎞ 16 ⎞
X0 ⎪ ⎜ f ⎜ ⎟ −
⎟⎟
⎜
⎪ ⎝ ⎝ X 0 ⎠ 116 ⎠
⎪
7.787
⎩
⎛ X ⎞
f ⎜ ⎟ ≥ 0.206893
⎝ X0 ⎠
,
⎛ X
f⎜
⎝ X0
⎞
⎟ < 0.206893
⎠
3
⎧
⎛ Y⎞
⎪
f⎜ ⎟
⎪
⎝ Y0 ⎠
Y ⎪
= ⎨⎛ ⎛ Y ⎞ 16 ⎞
Y0 ⎪ ⎜ f ⎜ ⎟ −
⎟⎟
⎜
⎪ ⎝ ⎝ Y0 ⎠ 116 ⎠
⎪
7.787
⎩
⎛ Y⎞
f ⎜ ⎟ ≥ 0.206893
⎝ Y0 ⎠
⎛ Y
f⎜
⎝ Y0
⎞
⎟ < 0.206893
⎠
.‫ ﻣﯽرﺳﻴﻢ‬XYZ ‫ﮐﻪ ﺑﺎ داﺷﺘﻦ ﻣﺸﺨﺼﺎت رﻧﮓ ﺳﻔﻴﺪ ﻣﺮﺟﻊ ﺑﻪ ﻓﻀﺎﯼ‬
[x y z] = lab2xyz (l, a, b)
:‫ﻧﺎم ﺗﺎﺑﻊ‬
.‫ ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ‬XYZ ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫ را ﺑﻪ ﻣﻘﺎدﯾﺮ‬L*a*b* ‫ ﺑﻴﺘﯽ در ﻓﻀﺎﯼ‬٨ ‫اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺎدﯾﺮ‬
% scaling components to origin ranges.
l = MyScale(l, 0,255, 3,100);
24
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
:‫ﺗﻮﺻﻴﻒ‬
Advanced Information & Communication Technology Center
a = MyScale(a, 0,255, -416,416);
b = MyScale(b, 0,255, -167,167);
%computing Y and F(Y/Y0)
if (l>=7.9996)
fy = (l + 16)/116;
y = fy ^ 3;
else
y = l/903.3;
fy = 7.787*y + (16/116);
end;
%F(X/X0), F(Z/Z0)
fx = a/500 + fy;
fz = fy - b/200;
%computing X
if (fx >= 0.206893)
x = fx ^ 3;
else
x = (fx - 16/116)/7.787;
end;
%computing Z
if (fz >= 0.206893)
z = fz ^ 3;
else
z = (fz - 16/116)/7.787;
end;
%scaling components to 8-bits values
x = uint8(x*255);
y = uint8(y*255);
z = uint8(z*255);
LCH ‫ﻓﻀﺎهﺎﯼ‬
‫ ﻧﻤﺎﯾﺶ در ﻣﺨﺘﺼﺎت ﻗﻄﺒﯽ ﺑﻪ ﺗﺠﺎرب دﯾﺪارﯼ اﻧﺴﺎن‬.‫ در ﻣﺨﺘﺼﺎت ﻗﻄﺒﯽ ﻣﯽﺑﺎﺷﺪ‬L*a*b* ‫ و‬L*u*v* ‫ اﯾﻦ ﻓﻀﺎ ﺑﺮ ﭘﺎﯾﻪﯼ ﻓﻀﺎهﺎﯾﯽ‬:‫ﻣﺒﺎﻧﯽ ﻧﻈﺮﯼ‬
.‫ﻧﺰدﯾﮏﺗﺮ از ﻧﻤﺎﯾﺶ در ﻣﺨﺘﺼﺎت ﮐﺎرﺗﺰﯾﻦ اﺳﺖ‬
:‫ ﺧﻮاهﻴﻢ داﺷﺖ‬،‫ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﻢ‬L*a*b* ‫اﮔﺮ از ﻣﺨﺘﺼﺎت ﻗﻄﺒﯽ ﻓﻀﺎﯼ‬
L = L , C = a *2 +b *2 , Hab = a tan 2(
b*
)
a*
:‫و ﺑﺮاﯼ ﻋﮑﺲ ﺁن‬
−C
⎧
⎪
2
(tan(H
ab )) + 1
⎪
L = L , a* = ⎨
C
⎪
⎪ (tan(H ))2 + 1
ab
⎩
90 < Hab < 270
else
2
2
⎪⎧ C − a *
, b* = ⎨
⎪⎩− C 2 − a *2
Hab ≤ 180
Hab > 180
:‫ ﺧﻮاهﻴﻢ داﺷﺖ‬،‫ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﻢ‬L*u*v* ‫و اﮔﺮ از ﻣﺨﺘﺼﺎت ﻗﻄﺒﯽ ﻓﻀﺎﯼ‬
L = L , C = u *2 + v *2 , Huv = a tan 2(
u*
)
v*
:‫و ﺑﺮاﯼ ﻋﮑﺲ ﺁن‬
25
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
Advanced Information & Communication Technology Center
−C
⎧
⎪
2
(tan(H
uv )) + 1
⎪
L = L , u* = ⎨
C
⎪
⎪ (tan(H ))2 + 1
uv
⎩
26
90 < Huv < 270
else
2
2
⎪⎧ C − u *
, v* = ⎨
⎪⎩− C 2 − u *2
.‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‬
Huv ≤ 180
Huv > 180
‫‪Advanced Information & Communication Technology Center‬‬
‫‪11‬‬
‫ﻓﻀﺎهﺎﯼ رﻧﮓ – وﯾﮋﮔﯽهﺎ و ﮐﺎرﺑﺮدهﺎ‬
‫ﻓﻀﺎﯼ رﻧﮓ‬
‫‪RGB‬‬
‫)‪CMY(K‬‬
‫ﮐﺎرﺑﺮدهﺎ‬
‫ﻣﻬﻤﺘﺮﯾﻦ وﯾﮋﮔﯽهﺎ‬
‫•‬
‫ﺳﻴﺴﺘﻢ رﻧﮓ ﺟﻤﻊﭘﺬﯾﺮ‪ ،‬ﺷﺎﻣﻞ رﻧﮓهﺎﯼ ﭘﺎﯾﻪﯼ ﻗﺮﻣﺰ‪ ،‬ﺳﺒﺰ‪ ،‬ﺁﺑﯽ‬
‫•‬
‫ﻧﻤﺎﯾﺸﮕﺮهﺎﯼ ‪CRT‬‬
‫•‬
‫ﺑﺮ ﭘﺎﯾﻪﯼ ﻧﻈﺮﯾﻪﯼ ﺳﻪرﻧﮕﯽ‬
‫•‬
‫دورﺑﻴﻦهﺎﯼ ﺗﻠﻮﯾﺰﯾﻮﻧﯽ‬
‫•‬
‫ﻓﻘﻂ ﻣﺨﺼﻮص ﺳﻴﺴﺘﻢهﺎﯼ ﻧﻤﺎﯾﺸﯽ‬
‫•‬
‫ﮔﺮاﻓﻴﮏ ﮐﺎﻣﭙﻴﻮﺗﺮﯼ‬
‫•‬
‫ﭘﻴﺎدﻩﺳﺎزﯼ و ﮐﺎرﺑﺮد ﺁﺳﺎن‬
‫•‬
‫و ‪. ...‬‬
‫•‬
‫ﻏﻴﺮﺧﻄﯽ و ﻧﻴﻤﻪ ﺷﻬﻮدﯼ‬
‫•‬
‫واﺑﺴﺘﻪ ﺑﻪ وﺳﻴﻠﻪ )‪(Device dependent‬‬
‫•‬
‫رﻧﮓهﺎﯼ ﻣﮑﻤﻞ‪ :‬ﻓﻴﺮوزﻩاﯼ‪ ،‬ﺑﻨﻔﺶ‪ ،‬زرد‪ ،‬ﺳﻴﺎﻩ‬
‫•‬
‫ﭼﺎپ رﻧﮕﯽ‬
‫•‬
‫ﺑﮑﺎرﮔﻴﺮﯼ ﺁﺳﺎن‬
‫•‬
‫ﻋﮑﺲ رﻧﮕﯽ‬
‫•‬
‫ﺗﺒﺪﯾﻞ ﺑﻪ ﺁن از ﻓﻀﺎﯼ ‪ RGB‬ﻣﺸﮑﻞ اﺳﺖ )ﻣﮕﺮ ﺑﺎ ﺑﻌﻀﯽ ﺳﺎدﻩاﻧﮕﺎرﯼهﺎ(‪.‬‬
‫•‬
‫ﻧﻘﺎﺷﯽ‬
‫•‬
‫واﺑﺴﺘﻪ ﺑﻪ ‪.Device‬‬
‫•‬
‫•‬
‫ﭼﺎﭘﮕﺮهﺎ و وﺳﺎﯾﻞ ﻧﻈﻴﺮ ﺁﻧﻬﺎ اﻏﻠﺐ داراﯼ رﻧﮓ ﺳﻴﺎﻩ ﺟﺪاﮔﺎﻧﻪ هﺴﺘﻨﺪ‪.‬‬
‫ﺻﺮﻓﻪﺟﻮﯾﯽ در هﺰﯾﻨﻪ ﺑﻪ دﻟﻴﻞ‬
‫اﺳﺘﻔﺎدﻩ از رﻧﮓ ﺳﻴﺎﻩ‬
‫•‬
‫ﻏﻴﺮﺧﻄﯽ و ﻏﻴﺮﺷﻬﻮدﯼ‬
‫‪HSL‬‬
‫‪HSI‬‬
‫‪HSV‬‬
‫‪HCI‬‬
‫•‬
‫اﻏﻠﺐ اﯾﻦ ﻓﻀﺎهﺎ ﺑﺎ ﯾﮏ ﺗﺒﺪﯾﻞ ﺧﻄﯽ از ﻓﻀﺎﯼ ‪ RGB‬ﺑﺪﺳﺖ ﻣﯽﺁﯾﻨﺪ‪.‬‬
‫•‬
‫ﭘﺮدازش ﺗﺼﻮﯾﺮ‬
‫•‬
‫ﻏﻴﺮﺧﻄﯽ وﻟﯽ ﺑﺴﻴﺎر ﺷﻬﻮدﯼ‬
‫•‬
‫•‬
‫واﺑﺴﺘﻪ ﺑﻪ دﺳﺘﮕﺎﻩ‬
‫ﺟﺪاﺳﺎزﯼ ﻟﻮﻣﻴﻨﺎﻧﺲ ﻣﯽﺗﻮاﻧﺪ در‬
‫ﭘﺮدازش ﺗﺼﻮﯾﺮ و ﺳﺎﯾﺮ ﮐﺎرﺑﺮدهﺎ‪،‬‬
‫ﺑﺴﻴﺎر ﻣﻔﻴﺪ واﻗﻊ ﺷﻮد‪.‬‬
‫‪YUV‬‬
‫•‬
‫‪ YIQ‬و ‪ YUV‬ﻓﻀﺎهﺎﯼ ﺁﻧﺎﻟﻮگ ﺑﺮاﯼ ‪ NYSC‬و ‪ PAL‬هﺴﺘﻨﺪ‪.‬‬
‫•‬
‫اﻧﺘﻘﺎﻻت ﺗﻠﻮﯾﺰﯾﻮﻧﯽ‬
‫‪YIQ‬‬
‫•‬
‫‪ YCbCr‬ﺑﺮاﯼ ﺳﻴﺴﺘﻢهﺎﯼ دﯾﺠﻴﺘﺎل ﺑﮑﺎر ﻣﯽرود‪.‬‬
‫•‬
‫اﻧﺘﻘﺎل ﺗﺼﺎوﯾﺮ رﻧﮕﯽ‬
‫‪YCbCr‬‬
‫•‬
‫ﺁﻧﻬﺎ ﻟﻮﻣﻴﻨﺎﻧﺲ را از ﮐﺮوﻣﻴﻨﺎﻧﺲ )ﻧﻮر را از رﻧﮓ( ﺟﺪا ﻣﯽﮐﻨﻨﺪ‪.‬‬
‫•‬
‫ﭘﺮدازش ﺗﺼﻮﯾﺮ‬
‫‪YCC‬‬
‫•‬
‫واﺑﺴﺘﻪ ﺑﻪ دﺳﺘﮕﺎﻩ‪.‬‬
‫•‬
‫ﻓﺸﺮدﻩﺳﺎزﯼ ﺗﺼﻮﯾﺮ‬
‫•‬
‫ﻏﻴﺮﺷﻬﻮدﯼ‪ ،‬ﻣﮕﺮ اﯾﻨﮑﻪ ﻣﺘﺨﺼﺺ ﺗﻠﻮﯾﺰﯾﻮن ﺑﺎﺷﻴﺪ‪.‬‬
‫•‬
‫ذﺧﻴﺮﻩﺳﺎزﯼ ﺗﺼﻮﯾﺮ‬
‫•‬
‫ﺳﻴﺴﺘﻢ ‪ PhotoCD‬ﮐﺪاﮎ از ﻓﻀﺎﯼ ‪ YCC‬اﺳﺘﻔﺎدﻩ ﻣﯽﮐﻨﺪ ﮐﻪ ﯾﮏ ﻓﻀﺎﯼ‬
‫رﻧﮓ ‪ Device Calibrated‬ﻣﯽﺑﺎﺷﺪ‪.‬‬
‫‪XYZ‬‬
‫•‬
‫رﯾﺸﻪ و ﭘﺎﯾﻪﯼ ﻋﻠﻮم رﻧﮓﺳﻨﺠﯽ )‪(Colorimetry‬‬
‫•‬
‫‪ Y ،X‬و ‪ Z‬ﺑﺮاﯼ ﺗﻤﺎﻣﯽ رﻧﮓهﺎ داراﯼ ﻣﻘﺎدﯾﺮ ﻣﺜﺒﺖ ﻣﯽﺑﺎﺷﻨﺪ‪.‬‬
‫•‬
‫‪ Y‬ﺟﺰء ﻟﻮﻣﻴﻨﺎﻧﺲ رﻧﮓ ﻣﯽﺑﺎﺷﺪ‪.‬‬
‫•‬
‫•‬
‫•‬
‫ﻏﻴﺮﺧﻄﯽ‪.‬‬
‫•‬
‫ﺑﺼﻮرت ﯾﮑﻨﻮاﺧﺖ ﻗﺎﺑﻞ ﻣﺸﺎهﺪﻩ ﻧﻴﺴﺘﻨﺪ‪.‬‬
‫•‬
‫‪ X=Y=Z‬ﻣﺘﻨﺎﻇﺮ ‪ R=G=B‬ﺑﺎ اﻧﺮژﯼ ﻧﻮرﯼ ﯾﮑﺴﺎن ﻣﯽﺑﺎﺷﺪ‪.‬‬
‫*‪L*U*V‬‬
‫•‬
‫ﺑﺮ ﭘﺎﯾﻪﯼ ﺳﻴﺴﺘﻢ ﺑﻴﻨﺎﯾﯽ اﻧﺴﺎن‪.‬‬
‫*‪L*a*b‬‬
‫•‬
‫ﺗﻘﺮﯾﺒﺎ ﺧﻄﯽ ﺑﺎ درﮎ ﺑﺼﺮﯼ‬
‫•‬
‫ﻣﺴﺘﻘﻞ از دﺳﺘﮕﺎﻩ‬
‫•‬
‫ﮐﺎﻣﻼ ﻏﻴﺮﺷﻬﻮدﯼ‬
‫ﺑﻪﻋﻨﻮان ﻓﻀﺎﯼ رﻧﮓ اﺳﺘﺎﻧﺪارد‪،‬‬
‫اﻏﻠﺐ در ﺗﻌﺮﯾﻒ ﻓﻀﺎهﺎﯼ رﻧﮕﯽ‬
‫دﯾﮕﺮ ﺑﻪﮐﺎر ﻣﯽرود‪.‬‬
‫ﻣﻌﺎوﺿﻪﯼ دادﻩهﺎﯼ ﺗﺼﻮﯾﺮ رﻧﮕﯽ‬
‫ﺑﻴﻦ دﺳﺘﮕﺎﻩهﺎﯼ ﻣﺨﺘﻠﻒ‪.‬‬
‫•‬
‫ﮐﺎﻟﻴﺒﺮاﺳﻴﻮن‬
‫ﻣﺨﺘﻠﻒ‬
‫•‬
‫ﮐﺎﻟﻴﺒﺮاﺳﻴﻮن ﺑﺮاﯼ ‪device‬هﺎﯼ‬
‫ﻣﺨﺘﻠﻒ ﻧﻈﻴﺮ ﭼﺎﭘﮕﺮهﺎ‪ ،‬دورﺑﻴﻦهﺎﯼ‬
‫دﯾﺠﻴﺘﺎل و ‪. ...‬‬
‫ﺑﺮاﯼ‬
‫‪device‬هﺎﯼ‬
‫•‬
‫ﻣﻌﺎوﺿﻪﯼ دادﻩهﺎﯼ ﺗﺼﻮﯾﺮ رﻧﮕﯽ‬
‫ﺑﻴﻦ دﺳﺘﮕﺎﻩهﺎﯼ ﻣﺨﺘﻠﻒ‪.‬‬
‫•‬
‫ﻣﺪﯾﺮﯾﺖ رﻧﮓ‬
‫•‬
‫ﭘﺮدازش ﺗﺼﻮﯾﺮ‬
‫‪http://www.digitalearth.net.cn/readingroom/Class-3/He Mingyi.doc‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪27‬‬
‫‪11‬‬
‫‪Advanced Information & Communication Technology Center‬‬
‫©ﮐﻠﻴﻪﯼ ﺣﻘﻮق اﯾﻦ ﻣﺴﺘﻨﺪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺮﮐﺰ ﻓﻨﺎورﯼ اﻃﻼﻋﺎت و ارﺗﺒﺎﻃﺎت ﭘﻴﺸﺮﻓﺘﻪ ﺷﺮﯾﻒ اﺳﺖ‪.‬‬
‫‪28‬‬