Xem mẫu

  1. Ch­¬ng 11 Xö lý ¶nh mµu 11.1 ChØ dÉn CÇn nhÊn m¹nh r»ng trong c¸c ch­¬ng tr­íc chóng ta xö lý trùc tiÕp ¶nh ®en tr¾ng (¶nh cã møc x¸m). B©y giê chóng ta sÏ quan t©m ®Õn xö lý c¸c ¶nh mµu. B©y giê, chóng ta sÏ b¾t ®Çu xem xÐt c¸c c¬ së cña mµu s¾c, sau ®ã chóng ta ®Ò cËp ®Õn c¸c kü thuËt ¸p dông trong xö lý ¶nh mµu. Chóng t«i sÏ ®Ò cËp ®Õn bé läc 2-D cho ¶nh mµu, vµ tr×nh bµy tr×nh tù xö lý ¶nh mµu dùa trªn tr×nh tù xö lý ¶nh ®en tr¾ng. Chóng t«i còng sÏ ph¸t triÓn mét kü thuËt läc ¶nh mµu cã lùa chän. §iÒu nµy cho phÐp chóng ta ®iÒu chØnh ®­îc mét s¾c mµu riªng biÖt (tint), vÝ dô nh­ t¨ng s¾c mµu nµy lªn mµ kh«ng lµm thay ®æi c¸c s¾c mµu cßn l¹i trªn ¶nh. 11.2 C¬ së cña mµu s¾c ¸nh s¸ng lµ mét d¹ng cña n¨ng l­îng sãng ®iÖn tõ cã b­íc sãng vµo 400 m (millimicron) cho ¸nh s¸ng tÝm vµ vµo kho¶ng 700 kho¶ng tõ m cho ¸nh s¸ng ®á (h×nh 11.1). TÊt c¶ c¸c b­íc sãng nµy ®­îc c¶m nhËn bëi m¾t ng­êi nh­ lµ mét s¾c mµu. TÊt c¶ c¸c s¾c mµu nµy n»m trong ¸nh s¸ng tr¾ng cña mÆt trêi, víi n¨ng l­îng n»m trong kho¶ng tõ hång ngo¹i ®Õn cùc tÝm. Mµu s¾c cña mét vËt thÓ lµ mét hµm cña c¸c b­íc sãng kh«ng bÞ hÊp thô ph¶n chiÕu tõ vËt thÓ. §ã lµ lý do t¹i sao mµ mét vËt thÓ cã c¸c mµu s¾c kh¸c nhau phô thuéc vµo ¸nh s¸ng mµ nã ®­îc quan s¸t. Mét vËt thÓ khi quan s¸t d­íi ¸nh s¸ng mÆt trêi sÏ cã mµu kh¸c khi nã ®­îc quan s¸t d­íi ¸nh s¸ng ®Ìn ®iÖn. PhÇn lín kiÕn thøc c¬ së cho hiÓu biÕt cña chóng ta vÒ mµu s¾c dùa trªn t×m tßi cña Isaac Newton vµ häc thuyÕt quang häc cña «ng. Newton kÕt luËn r»ng c¶m gi¸c cña chóng ta vÒ mµu s¾c lµ do t¸c ®éng sù ph¶n x¹ cã chän läc vÒ b­íc sãng c¸c tia s¸ng tíi. ¤ng ta cho r»ng mµu s¾c vËt thÓ cã nguyªn nh©n b¾t nguån tõ ph¶n x¹ b­íc sãng chän läc cña truyÒn ®¹t c¸c tia s¸ng xuÊt ph¸t tõ vËt thÓ. Newton ®· tr×nh bµy mét hçn hîp cña hai mµu cã phæ liªn tiÕp cho ta mét mµu phæ trung gian, nh­ng hçn hîp cña hai mµu cã phæ xa nhau ®á vµ lam cho ta mµu ®á tÝa, mét mµu kh«ng phæ. ¤ng ta còng giíi thiÖu mét lo¹t mµu mµ khi tæng hîp víi nhau cho mµu tr¾ng. ¤ng gäi c¸c mµu nµy lµ c¸c mµu chÝnh, bao gåm 227
  2. b¶y mµu: ®á, da cam, vµng, lôc, lam, chµm, tÝm, vµ ®­îc dïng ®Ó tÝnh c¸c mµu cã b­íc sãng kh¸c nhau. Thùc tÕ, cuèi cïng ng­êi ta ®· kh¸m ph¸ ra r»ng bÊt kú mµu nµo còng ®­îc t¹o ra bëi mét tû lÖ thÝch hîp cña ba mµu cã phæ riªng biÖt, mµ bÊt kú mµu nµo trong sè ba mµu nµy còng kh«ng thÓ t¹o ra b»ng tæng hîp cña hai mµu cßn l¹i. Ba mµu nµy gäi lµ ba mµu riªng (mµu chÝnh), ®­îc kÕt hîp víi nhau khi tæng hîp ¸nh s¸ng mµu, ®­îc t¸ch ra khi ph©n tÝch thµnh c¸c mµu thµnh phÇn, nh­ giíi thiÖu trong h×nh 11.2. Trong h×nh 11.2a, hÖ thèng tæng hîp ¸nh s¸ng ®­îc giíi thiÖu víi c¸c mµu riªng hay dïng nhÊt: ®á, lôc, lam. Céng mµu ®á vµ mµu lôc kÕt qu¶ cho ta mµu vµng. Céng ba mµu ®á, lôc, lam theo tû lÖ thÝch hîp cho ta mµu tr¾ng. Hai mµu ®­îc bæ sung, khi trén víi tû lÖ thÝch hîp, cho mµu tr¾ng. Mµu ®á t­¬i, vÝ dô, khi trén víi tû lÖ bï thªm vµo cña mµu lôc, cho ta mµu tr¾ng, nh­ giíi thiÖu trong tam gi¸c mµu ë h×nh 11.2a. V× vËy, mµu ®á t­¬i lµ mµu bï cña mµu lôc. C¸c ph©n tÝch riªng cho c¸c mµu nhuém thµnh phÇn lµ phÇn bï cña c¸c mµu tæng hîp cña ¸nh s¸ng (h×nh 11.2b). C¸c mµu riªng ph©n tÝch khi trén tû lÖ cho kÕt qu¶ lµ mµu ®en. HÇu hÕt c¸c mµu ®Òu dùa trªn hai tam gi¸c giíi thiÖu trong h×nh 11.2. Tia nh×n thÊy Tia vò trô Tia x UV Tia  Sãng radio IR SHF UHF VHF SW MW LW 1 1 1 1 1 1 Ao m mm m km  Da cam 500 Chµm 600 V µng Lam 400 TÝm Lôc 700 § á H×nh 11.1 D¶i sãng cña c¸c ¸nh s¸ng nh×n thÊy ®­îc. §á t­¬i Lôc §á Lam Lôc lam Vµng §en Tr¾ng Vµng §á Lam Lôc lam Lôc §á t­¬i 228 (b) (a)
  3. H×nh 11.2 Tæng hîp mµu theo ph­¬ng ph¸p céng vµ trõ. §Ó x¸c ®Þnh mét ¸nh s¸ng mµu th× c¸c yÕu tè sau ®©y cÇn ®Ò cËp ®Õn : §é s¸ng hay chãi. Nã lµ tæng hîp cña ¸nh s¸ng nhËn ®­îc bëi m¾t kh«ng kÓ tíi mµu s¾c. Nã n»m trong kho¶ng tõ lê mê tèi ®Õn rÊt s¸ng hoÆc chãi m¾t . S¾c mµu. ChÝnh lµ mµu cã phæ tréi h¬n trong ¸nh s¸ng. B·o hoµ mµu. Nã t¹o ra ®é tinh khiÕt phæ cña mµu trong ¸nh s¸ng. Cho mét hçn hîp cña mµu vµ ®en tr¾ng, ®é b·o hoµ mµu ®­îc t¨ng thªm bëi t¨ng cña tæng c¸c s¾c mµu. Nh÷ng tÝnh chÊt nµy cã thÓ m« t¶ b»ng s¬ ®å nh­ trong h×nh 11.3. Cã t¸m tÝnh chÊt c¬ b¶n quyÕt ®Þnh hçn hîp cña ba mµu: 1. Mét ®iÓm mµu tæng hîp th× ®éc lËp ®èi víi ®é s¸ng trªn mét ph¹m vi réng. 2. §é s¸ng cña mét hçn hîp c¸c mµu lµ tæng cña c¸c ®é s¸ng riªng lÎ. 3. BÊt kú mét mµu nµo còng ®­îc t¹o ra bëi mét hçn hîp kh«ng nhiÒu h¬n ba mµu thµnh phÇn. 4. C¸c mµu thµnh phÇn kh«ng thÓ nhËn ra ®­îc b»ng m¾t. 5. Mét ®iÓm mµu cã thÓ biÓu diÔn d­íi d¹ng biÓu thøc C = R(R) + G(G) + B(B) Cã nghÜa lµ R lµ ®¬n vÞ cña (R), G lµ ®¬n vÞ cña (G), B lµ ®¬n vÞ cña (B), khi tÝnh tæng t¹o ra mét ®iÓm víi mµu C. 6. C¸c mµu ®­îc kÕt hîp theo luËt céng. Gi¶ sö C1 kÕt hîp víi C2 kÕt hîp C3 kÕt hîp C4 , th× C1 + C3 kÕt hîp C2 + C4 . Quy t¾c nµy ®­îc gäi lµ luËt Grassman. 7. C¸c mµu kÕt hîp tu©n theo luËt trõ. 8. C¸c mµu kÕt hîp tu©n theo luËt b¾c cÇu. NÕu C1 kÕt hîp C2 vµ C2 kÕt hîp C3 th× C1 kÕt hîp víi C3. 229
  4. Giíi h¹n cña c¶m gi¸c S¸ng nhÊt Lam Lôc B·o hoµ TÝa Mµu s¾c §á Vµng Tèi nhÊt H×nh 11.3 Thuéc tÝnh cña mµu. 11.2.1 NhËn biÕt mµu s¾c M¾t ng­êi cã hai bé phËn c¶m nhËn ¶nh: tÕ bµo nãn vµ tÕ bµo gËy. Chóng n»m trªn mµng trong cïng cña m¾t, gäi lµ vâng m¹c, vµ chóng c¶m nhËn vËt thÓ qua ¶nh cña vËt thÓ ®ã trªn vâng m¹c. Trong toµn bé m¾t th× c¸c tÕ bµo nãn cã vµo kho¶ng s¸u ®Õn b¶y triÖu. Chóng n»m tËp trung ë vÞ trÝ trung t©m cña vâng m¹c gäi lµ hè vâng m¹c, vµ cã ®é nh¹y c¶m cao ®èi víi mµu s¾c. Con ng­êi së dÜ cã thÓ ph©n biÖt ®­îc c¸c chi tiÕt lµ v× c¸c tÕ bµo nãn nµy ®­îc nèi víi c¸c d©y thÇn kinh ë phÝa cuèi. ¶nh thu ®­îc tõ c¸c tÕ bµo nãn nµy gäi lµ c¸c h×nh ¶nh ®é s¸ng. Sè tÕ bµo gËy th× rÊt lín, vµo kho¶ng tõ 75 cho ®Õn 100 triÖu vµ chóng ®­îc ph©n bè ®Òu kh¾p bÒ mÆt vâng m¹c. Sù ph©n bè réng cïng víi thùc tÕ lµ tÕ bµo gËy ®Òu ®­îc nèi mét d©y thÇn kinh riªng t¹o ra kÕt qu¶ lµ sù tæng hîp c¸c chi tiÕt bëi bé phËn c¶m nhËn nµy. TÕ bµo gËy cung cÊp cho ta mét h×nh ¶nh toµn bé cña vËt thÓ kh«ng bao gåm c¸c chi tiÕt vÒ mµu s¾c vµ ®é s¸ng. Trong ¸nh s¸ng mê th× chØ cã tÕ bµo gËy bÞ kÝch thÝch vµ vËt thÓ hiÖn lªn nh­ mét ¶nh kh«ng cã mµu s¾c. §Æc tÝnh nµy gäi lµ kh¶ n¨ng thÝch øng nh×n tèi. 230
  5. Lý do mµ con ng­êi cã thÓ ph©n biÖt ®­îc mµu s¾c th× hiÖn nay vÉn ch­a ®­îc lµm râ rµng. Mét gi¶ thiÕt lµ m¾t con ng­êi cã ba lo¹i tÕ bµo nãn, mçi lo¹i cho c¶m øng víi mét lo¹i mµu s¾c riªng lµ: ®á, lôc, lam. C¶m nhËn cña c¸c tÕ bµo nãn nµy ®­îc tr¶i ra trªn mét d¶i tÇn sè réng. Sau nhiÒu lÇn thö nghiÖm, c¸c mµu riªng ®· ®­îc chuÈn ho¸ bëi ñy ban CIE (Commission International d'Eclairage). C¸c mµu riªng theo tiªu chuÈn cña CIE bao gåm: mµu ®á (700 nm), mµu lôc (546,1 nm), mµu lam (435,8 nm). M¾t cña con ng­êi cho mét c¶m nhËn tèt nhÊt ®èi víi c¸c mµu riªng nµy so víi c¸c mµu cßn l¹i. C¶m nhËn mµu s¾c phô thuéc rÊt lín vµo ®é s¸ng. Mµu s¾c ®­îc c¶m nhËn tèt h¬n khi ®é s¸ng t¨ng lªn. Mét ¶nh tèt thùc sù th× sÏ cho mét c¶m nhËn cao h¬n vÒ ®é s¸ng so víi c¸c ¶nh cßn l¹i. Trong h×nh 11.4 ®­a ra ®­êng cong c¶m nhËn ®é s¸ng cña m¾t ng­êi ®èi víi c¸c ¸nh s¸ng cã b­íc sãng kh¸c nhau víi cïng mét møc n¨ng l­îng. M¾t ng­êi c¶m nhËn tèt nhÊt víi mµu lôc (b­íc sãng vµo kho¶ng 555 nm). Kh¶ n¨ng ph©n biÖt sù chuyÓn dÇn mµu sang c¸c mµu t­¬ng tù bÞ h¹n chÕ. ChÝnh v× h¹n chÕ nµy cña m¾t ng­êi mµ mét sè s¶n phÈm vÒ mµu ®­îc s¶n xuÊt trong thùc tÕ vÉn tho¶ m·n yªu cÇu, thËm chÝ ng­êi ta cã thÓ c¾t bít mét sè trong phæ mµu thùc. 11.2.2 BiÓu thøc mµu C¸c mµu riªng RGB: ®á (Red), lôc (Green), lam (Blue) lµ c¸c mµu riªng vËt lý ®­îc dïng trong c¸c thÝ nghiÖm vËt lý thùc sù. C¸c mµu riªng nµy kh«ng ph¶i lµ duy nhÊt vµ ta cã thÓ dïng c¸c mµu riªng kh¸c ®Ó thay thÕ. Vµo n¨m 1938, CIE ®· ®­a ra mét tËp c¸c mµu riªng kh«ng vËt lý, ký hiÖu lµ X, Y, Z. C¶i tiÕn chÝnh trong tËp mµu nµy lµ ®é s¸ng ®­îc ®­a ra trùc tiÕp nh­ lµ mét mµu riªng (Y). Y sÏ cho ta møc x¸m tõ ¶nh mµu. C¸c mµu riªng nµy ®­îc rót ra tõ c¸c mµu riªng vËt lý theo biÕn ®æi tuyÕn tÝnh cho bëi : X = 2.7690R + 1.7518G + 1.1300B Y = 1.0000R + 4.5907G + 0.0601B (11.1) Z = 0.0000R + 0.0565G + 5.5943B 231
  6. 1.0 Quan hÖ ®é s¸ng 0.8 0.6 0.4 0.2 0  (nm) 400 500 600 700 Vµng cam §á cam Lam TÝm Lôc §á H×nh 11.4 Sù c¶m nhËn c­êng ®é s¸ng cña m¾t ng­êi. C¸c biÓu thøc nµy lµ ®óng cho bÊt kú mµu nµo. Dùa trªn c¸c X, Y, Z s¬ ®å mµu CIE ®· ®­îc ph¸t triÓn. S¬ ®å nµy lµ mét kh«ng gian biÓu diÔn cho tÊt c¶ c¸c mµu cã phæ vµ tæng hîp cña chóng (H×nh 11.5). To¹ ®é mµu rót ra tõ : D=X+Y+Z X Y Z (11.2) x y z D D D x+y+z=1 y (G') 1.0 0.9 (G) . B­íc sãng 0.8 0.7 Lôc 0.6 Vµng 0.5 C¸c s¾c mµu kh¸c 0.4 Tr¾ng . Lôc lam §á . 0.3 (R) 0.2 §á t­¬i Lam 232 0.1 . (B) 0 x 0.1 0.3 0.5 0.7 0.8 0.2 0.4 0.6
  7. H×nh 11.5 BiÓu ®å mµu CIE. Trong s¬ ®å CIE mét lo¹t c¸c mµu cã phæ ®­îc cho däc theo ®­êng cong, c¸c gãc biÓu diÔn cho ba mµu riªng: ®á, lôc, vµ lam. GÇn trung t©m cña miÒn n»m trong tam gi¸c c¸c mµu trë nªn Ýt b·o hoµ h¬n, biÓu diÔn cho hçn hîp mµu. Mµu tr¾ng n»m t¹i ®iÓm trung t©m w víi to¹ ®é x = y = 0.3333. S¬ ®å mµu trªn chøa c¸c mµu víi cïng mét ®é s¸ng. NÕu ®é s¸ng cña mµu ®­îc cho bëi gi¸ trÞ cña z t¹i gãc bªn ph¶i cña mÆt ph¼ng x-y, tÊt c¶ c¸c mµu víi ®é s¸ng cña nã sÏ cã d¹ng nh­ h×nh 11.6. NÕu ®é s¸ng t¨ng lªn, s¬ ®å mµu sÏ trë nªn réng h¬n vµ sÏ cã nhiÒu chi tiÕt mµu tr«ng thÊy. T¹i c¸c møc ®é s¸ng thÊp, c¸c mµu trë nªn kkã ph©n biÖt vµ s¬ ®å sÏ thu hÑp l¹i mét ®iÓm, biÓu diÔn cho mµu ®en. 11.3 ¶nh mµu NÕu b¹n kiÓm tra mµn h×nh cña mét tivi khi nã ®­îc bËt lªn, b¹n sÏ chó ý thÊy t¹i tÊt c¶ c¸c ®iÓm ¶nh mµu ®­îc t¹o nªn b»ng ba vßng trßn nhá hoÆc tam gi¸c cã mµu ®á, lôc, lam. Sù thay ®æi ®é s¸ng cña ba phÇn tö mµu nµy t¹o nªn mµu s¾c cña ®iÓm ¶nh. Trong ¶nh sè th× c¸c ®iÓm ¶nh ®­îc biÓu diÔn b»ng mét sè tõ cã cïng mét sè bit cho c¸c mµu ®á, lôc, lam. VÝ dô nh­ ¶nh mµu ®­îc biÓu diÔn b»ng 16 bit th× ®Òu cã 5 bit ®Ó biÓu diÔn cho mçi mµu, bit cuèi cïng dïng cho mét vµi chøc n¨ng ®Æc biÖt nh­ ng¨n xÕp. Trong mét khung sè th× bit cuèi cïng th«ng th­êng ®Ó chØ ra ®iÓm ¶nh nµy ®­îc lÊy tõ bé ®Öm khung (bé nhí ng¨n xÕp) hay lµ tõ tÝn hiÖu video bªn ngoµi (ng¨n xÕp trùc tiÕp). Trong hÖ thèng 16 bÝt 32,768 mµu cã thÓ ®­îc biÓu diÔn víi ba mµu riªng cã kh¶ n¨ng thÓ hiÖn 32 tr¹ng th¸i. CÊu t¹o cña mét ®iÓm ¶nh cho trong b¶ng 11.1. G §é chãi W  Bãng x¸m  R §en B 233
  8. H×nh 11.6 H×nh chãp mµu. 11.4 TÝnh s¬ ®å mµu cho c¸c hÖ thèng mµu 15 bit vµ 8 bit §Ó lµm më réng hiÓu biÕt cña chóng ta vÒ hçn hîp mµu, chóng ta sÏ lµm mét ch­¬ng tr×nh tÝnh vµ thÓ hiÖn s¬ ®å mµu cho hÖ thèng 15 bit (5 bÝt cho mét mµu) vµ hÖ thèng mµu 8 bit (256 mµu). HÖ thèng 15 bit mµu mµ chóng ta sö dông lµ Professional Image Board (PIB) cña Atronics International, Inc. (ATI). VØ m¹ch nµy ®­îc thiÕt kÕ ®Ó thÓ hiÖn ¶nh cã kÝch th­íc 512  256 hoÆc lµ 512  512 ®iÓm, víi tÊt c¶ c¸c ®iÓm biÓu diÔn b»ng 16 bit. 16 bit nµy ®­îc chia nh­ trong b¶ng 11.1. VØ m¹ch VGA cã kh¶ n¨ng thÓ hiÖn 256 mµu víi tÊt c¶ c¸c mµu thÓ hiÖn b»ng 6 bit. Tæng sè mµu mµ vØ m¹ch VGA cã thÓ tÝnh ra lµ 218 = 262,144. Dï thÕ nµo ®i ch¨ng n÷a th× chØ cã 256 mµu ®­îc sö dông. Mét vØ m¹ch nµy t­¬ng ®­¬ng nh­ lµ thiÕt bÞ video mµu 8 bit. b¶ng 11.1 BiÓu diÔn cña ®iÓm ¶nh mµu 16 bit BÝt 0 ®Õn bÝt 4 Lam BÝt 5 ®Õn bÝt 9 Lôc BÝt 10 ®Õn bÝt 14 §á BÝt 15 Overlay VØ m¹ch ATI PIB ®­îc chia ra lµm hai m· nguån: mét b»ng Microsoft Assembly cho c¸c ch­¬ng tr×nh vµo ra c¬ b¶n, mét b»ng Microsoft C cho c¸c ch­¬ng tr×nh chÝnh (nh­ lÊy ra khung ¶nh hoÆc lµ söa l¹i mµu). MÆc dï b¹n cã thÓ ®­a ra phÇn lín c¸c ch­¬ng tr×nh trong ch­¬ng nµy mµ kh«ng cÇn vØ m¹ch l­u gi÷ khung mµu, nh­ng ®Ó lµm cho ®Çy ®ñ c«ng viÖc t«i khuyªn b¹n nªn sö dông mét vØ m¹ch cã chÕ ®é Ýt nhÊt lµ 512  256. Nã kh«ng qu¸ ®¾t, thËm chÝ nã rÎ h¬n mét sè vØ m¹ch ®en tr¾ng. T«i sÏ cung cÊp cho b¹n c¸c ch­¬ng tr×nh con dïng cho lo¹i vØ m¹ch nµy, nÕu b¹n cã mét lo¹i vØ m¹ch kh¸c th× kh«ng ph¶i lµ khã kh¨n l¾m ®Ó viÕt l¹i c¸c söa ®æi cho phï hîp. Ch­¬ng tr×nh mµ t«i ®­a ra trong ch­¬ng nµy ®­îc viÕt b»ng Turbo C. Nã sÏ ®ßi hái ph¶i cã mét thay ®æi nhá trªn m· nguån cung cÊp cho vØ m¹ch ATI, PIBTOOL.C vµ IMGIO.ASM. §Ó dÞch vµ liªn kÕt thµnh mét ch­¬ng tr×nh (tªn lµ CHROM.C) b¹n cã thÓ lµm 234
  9. ®iÒu nµy th«ng qua Project trªn menu lùa chän cña m«i tr­êng ph¸t triÓn kÕt hîp hoÆc lµ ®¸nh dßng lÖnh DOS : tcc chrom.c pibtool.c imgio.asm Tr­íc khi xö lý, b¹n sÏ cÇn viÕt mét file "custom.h" chøa mét lo¹t c¸c ch­¬ng tr×nh nguån sö dông trong hai ch­¬ng tr×nh IMGIO.ASM vµ PIBTOOL.C. Danh s¸ch cña "custom.h" ®­îc cung cÊp sau ch­¬ng tr×nh 11.1. §Æt "custom.h" n»m ë th­ môc con Turbo C. Ch­¬ng tr×nh cho vØ m¹ch PIB ®­îc viÕt cho kiÓu 512  256. C¸c b¹n còng cã thÓ dïng nã víi kiÓu 512  512 mµ kh«ng cÇn cã mét sù thay ®æi nµo. NÕu b¹n muèn sö dông ®Çy ®ñ kh¶ n¨ng cña kiÓu 512  512 th× b¹n cÇn mét sè thay ®æi nhá. NÕu kh¶ n¨ng tµi chÝnh kh«ng cho phÐp b¹n cã mét vØ m¹ch nh­ vËy, th× b¹n cã thÓ dïng vØ m¹ch VGA thay thÕ. B©y giê chóng ta sÏ quay l¹i víi s¬ ®å mµu CIE. M· nguån dïng trong ch­¬ng tr×nh 11.1 cho hiÖn lªn s¬ ®å mµu trªn mét monitor mµu dïng vØ m¹ch PIB. Ch­¬ng tr×nh 11.1 "CHROM.C".Displaying the chromaticity diagram. #include /* Program for displaying the chromaticity diagram using the ATI PIB board, 512x256 version. */ void main() { unsigned i,R,G,B; int xp,yp; float x,y,X,Y,Z,D; InitPIB(); /* Initials the PIB to the internal display mode.*/ SetInDispMode(); /* Sets PIB to the internal Sync display mode and also enables the direct memory access. */ SetScreen(0); /* Display page 0 512x256. */ FillPibRect(0,0,0,511,255,0); /* Clear screen. 235
  10. FillPibRect(color,xl,yl,x2,y2,mode); fills the rectangle area specified by the two corners (xl,yl) and (x2,y2) with color. mode=0 for set the pixel to the value specified. mode=1 for 'exclusive or' the pixel with the value specified. mode=2 for 'and' the pixel with the value specified.*/ for(i=1;i>5; R=(0x7C00 & i)>10; X=2.7690*R+1.7518*G+1.1300*B; Y=R+4.5907*G+0.0601*B; Z=0.0565*G+5.5943*B; D=X+Y+Z ; x=X/D; y=Y/D; xp=(int)(400.0*x+60.0+0.5); yp=(int)(200.0-y*200.0+0.5); PutPixel(&i,xp,yp,0); /* PutpixeI(*vaIue,x,y,mode) */ } } File include "custom.h" chøa c¸c mét lo¹t ch­¬ng tr×nh con cung cÊp bëi ATI. NÕu ch­a ®­îc cung cÊp bëi ATI b¹n cã thÓ tù viÕt lÊy c¸c ch­¬ng tr×nh nµy. LiÖt kª cho "custom.h" cung cÊp ë d­íi ®©y. "custom.h" void SetScreen(int); int CaptureFrame(void); void SetInDispMode(void); void SetExtDispMode(void); void SetLiveMode(void); void SetHue(int); void SetContrast(int); void SetSaturation(int); void Bright(int); void SetInterlace(int); 236
nguon tai.lieu . vn