YOMEDIA
ADSENSE
Xử lý ảnh màu part 3
184
lượt xem 55
download
lượt xem 55
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tham khảo tài liệu 'xử lý ảnh màu part 3', văn hoá - nghệ thuật, điêu khắc - hội họa phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Xử lý ảnh màu part 3
- { FGetPibRow(buff,0,511,i); fwrite(buff,512,2,fptro); } fclose(fptro); gotoxy(70,25); textattr(LIGHTGRAY+(BLACK
- palette.red[k] = (n palette.red[k] + r)/(n + 1) ¶nh mµu cã thÓ hiÓn thÞ nh mét ¶nh møc cêng ®é s¸ng 8 bit tÝnh dïng biÓu thøc ®é chãi vµ môc mµu tÝnh ra. Chó ý lµ ¶nh mµu cung cÊp trong cuèn s¸ch nµy cã chiÒu réng lµ 512, vµ chiÒu cao lµ 256 ®iÓm. ¶nh sÏ chØ hiÖn lªn c©n xøng chØ khi ta dïng vØ m¹ch PIB ATI. Khi hiÓn thÞ ¶nh dïng bé chuyÓn ®æi ®å ho¹ video, ®Ó cho ¶nh cã tû lÖ hîp lý, b¹n cÇn chuyÓn ¶nh cã kÝch thíc 256 256. Ch¬ng tr×nh thùc hiÖn chuyÓn ®æi nµy lu gi÷ trªn ®Üa trong file cã tªn lµ ATI_SCAL.C. ¶nh cã thÓ hiÖn lªn díi chÕ ®é Microsoft Window b»ng c¸ch ®Çu tiªn chuyÓn ¶nh thµnh d¹ng bitmap cho Windows. C¸c file nµy thêng cã phÇn më réng lµ BMP. Ch¬ng tr×nh dïng chuyÓn mét ¶nh mµu thµnh file BMP ®îc cung cÊp trªn ®Üa díi tªn BIN2BMP.EXE. Mét ¶nh ®· ®îc chuyÓn ®æi cã thÓ ®îc xem b»ng ch¬ng tr×nh Paintbrush cña Windows. Chó ý r»ng Windows ph¶i ë chÕ ®é hiÓn thÞ 256 mµu. Thuéc tÝnh nµy xuÊt hiÖn khi b¹n nh¾p ®óp vµo nhãm ch¬ng tr×nh "Main" vµ sau ®ã nh¾p ®óp vµo "Window Setup". KÝch "Options", sau khi ®· kÝch vµo "Change System SettÝng". B¹n cÇn ®Üa Windows' video driver cho phÐp m¸y tÝnh vµ vØ m¹ch video chuyÓn sang chÕ ®é mµ b¹n mong muèn. Mét sè ch¬ng tr×nh dïng ®Ó hiÓn thÞ ¶nh mµu díi DOS dïng vØ m¹ch VGA còng ®· cã s½n trªn ®Üa. §äc file README.DOC ®Ó hiÓu thªm vÒ c¸c chøc n¨ng nµy. Ch¬ng tr×nh hiÓn thÞ DOS sÏ hiÓn thÞ ¶nh PIB ATI. B¹n sÏ cÇn chia hoÆc biÕn ®æi chóng theo d¹ng thÝch hîp cho window. Ch¬ng tr×nh hiÓn thÞ DOS sÏ lµm viÖc trªn hÖ thèng cña b¹n nÕu vØ m¹ch video cña b¹n tu©n theo tiªu chuÈn VESA. NÕu b¹n cã khã kh¨n trong hiÖn thÞ díi m«i trêng DOS, b¹n h·y dïng trong m«i trêng Windows ®îc gi¶i thÝch ë trªn. SÏ cã mét sù thay ®æi râ rµng chÊt lîng cña ¶nh hiÖn lªn trªn hÖ thèng cã kh¶ n¨ng thÓ hiÖn 32,768 mµu so víi ¶nh hiÖn lªn trªn hÖ thèng cã kh¶ n¨ng thÓ hiÖn 256 mµu. §Ó thÊy râ sù kh¸c nhau nµy b¹n cÇn ch¹y ch¬ng tr×nh 11.4 ®Ó lÊy vµ hiÖn lªn c¸c ®iÓm ¶nh trªn vØ m¹ch PIB, nÕu vØ m¹ch nµy ®· ®îc cung cÊp s½n cho hÖ thèng cña b¹n, hoÆc b¹n cã thÓ thay ®æi ch¬ng tr×nh ®Ó thÝch hîp víi vØ m¹ch ¶nh mµu, nÕu b¹n cã mét s½n mét lo¹i vØ m¹ch kh¸c. B¹n cã thÓ dïng ¶nh "IHABCOL.IMG" ®· cã s½n trªn ®Üa víi kÝch thíc 512 512 ®iÓm ¶nh. Ch¬ng tr×nh 11.4 "LOADPIB.C". Loading a Colored image on the PIB board. The image is assumed to be of size 512 x 256 pixels. /*This program is for loading a colored 248
- image stored in a file onto the PIB board.*/ #include #include #include #include void main() { int i ; char buff[1024], file_name[30]; FILE *fptri; clrscr(); InitPIB(); SetScreen(0); SetInDispMode(); SetInterlace(1); FillPibRect(0,0,0,511,255,0); printf("Enter name of file containing colored image-->"); scanf("%S",file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("file %s does not exist.\n"); exit(1); } for(i=0;i
- ®é chãi. ChiÒu réng ¶nh ®é chãi lµ 256 256. ¶nh ®é chãi ®îc chia tõ 0 ®Õn 255 (8 bit). M· cña ch¬ng tr×nh cung cÊp ë ch¬ng tr×nh 11.5. Ch¬ng tr×nh 11.5 "COLTOBW.C".Transforming a color image acquired from the PIB board (512 x 256) to a luminance image suitable for display on the VGA card. /* program to convert color imagefrom PIB board (256x512) to gray-levelimage (256x256) which you can later display on your VGA card using DISP.C */ #include #include #include #include #include void main() { int R,G,B,i,j,buffi[512],yt; char ch,buffo[256],file_name[15]; float y; FILE *fptri,*fptro; clrscr(); printf("Enter name of file containing color image-->"); scanf("%s",file_name); fptri=fopen(file_name, "rb"); if(fptri==NULL) { printf("File %s does not exist",file_name); exit(1); } yt=wherey(); again: gotoxy(1,yt); delline(); printf("Enter name of file to store BW image-->"); scanf("%s",file_name); if(access(file_name,0)==0) { 250
- printf("File exists. Wish to overwrite? (y or n)-->"); while(((ch=tolower(getch()))!='y')&&(ch!='n')); putch(ch); switch(ch) { case 'y': break; case 'n': gotoxy(1,yt); delline(); goto again; } } fptro=fopen(file_name,"wb"); for(i=0;i 5; R=(0x7C00 & buffi[j]) >> 10; y=R+4.5907*G+0.0601*B; ch=(char)(y*1.45568+0.5); /* ch=Y/Ymax*255.0 i.e. scale range between 0 to 255. */ /* Y=0.30*R+0.59*G+0.11*B; ch=(char)(Y*8.225806+0.5); */ buffo[j>>1]=ch; } fwrite(buffo,256,1,fptro); } fclose(fptri); fclose(fptro); } HÖ sè nh©n Y trong ch¬ng tr×nh 11.5 ®îc cho theo : 251
- 255.0 (1 4.5907 0.0601) 32.0 BiÕn ®æi nµy cho sè møc n»m trong kho¶ng gi÷a 0 vµ 255. Chó ý r»ng cho vØ m¹ch PIB, sè møc lín nhÊt cho mçi mµu chÝnh lµ 32. Mét biÓu thøc néi suy cho ®é s¸ng dïng ®Ó biÕn ®æi tÝn hiÖu truyÒn h×nh mµu sang tÝn hiÖu ®en tr¾ng: Y = 0,30R + 0,59G + 0,11B (11.4) BiÓu thøc nµy dùa theo c¶m gi¸c cña m¾t vµo ba mµu chÝnh. §Ó kiÓm tra ch¬ng tr×nh 11.5 chóng ta sö dông ¶nh "IHABCOL.IMG". KÕt qu¶ dïng biÓu thøc (11.3) giíi thiÖu trong h×nh 11.7. BiÓu thøc (11.4) lu«n cho mét kÕt qu¶ ®óng, cßn biÓu thøc (11.3) cho ta mét ¶nh møc x¸m cã ®é s¸ng tèt h¬n. §Ó hoµn thiÖn kiÕn thøc c¬ b¶n cña chóng ta vÒ ¶nh mµu chóng t«i sÏ cung cÊp cho b¹n mét ch¬ng tr×nh dïng cho vØ m¹ch PIB ®Ó hiÓn thÞ ba mµu (®á, lôc, lam) díi d¹ng ¶nh mµu. Mét ¶nh sÏ ®îc n¹p vµo vØ m¹ch PIB tríc tiªn khi sö dông LOADPIB. H×nh 11.7 ¶nh møc x¸m cña ¶nh "IHABCOL.IMG". Ch¬ng tr×nh 11.6 RGBCOMP.C . HiÓn thÞ mét trong 3 mµu chÝnh cña ¶nh mµu trªn PIB. 252
- /*Program 11.6 "RGBCOMP.C". Program for displaying one of the three primary Image components of a color image on the PlB board. The color Image should be loaded first on the PIB board.*/ /* Program for producing r or g or b component image for a color image loaded on the PIB board. */ #include #include #include void main() { unsigned color,ch; int y; char file_name; clrscr(); printf("\nwhich image component would you like to see\n"); printf("Press r for red \n g for green\n b for blue\\n"); while(((ch=getch())!='r')&&(ch!='g')&&(ch!='b')); switch(ch) { case 'r': color=0xFC00; break; case 'g': color=0x83E0; break; case 'b': color=0x811F; } for(y=0;y
- 11.7 Läc ¶nh mµu Kh«ng cã g× kh¸c nhau c¬ b¶n gi÷a läc mét ¶nh ®en tr¾ng vµ läc mét ¶nh mµu. Víi ¶nh mµu chóng ta cã thÓ thùc hiÖn läc b»ng mét trong hai ph¬ng ph¸p. Chóng ta cã thÓ läc ba mµu chÝnh nh läc mét ¶nh ®en tr¾ng, hoÆc läc ¶nh ®é chãi sau ®ã sö dông kÕt qu¶ ®Ó ®a ra ¶nh mµu. C¶ hai ph¬ng ph¸p nµy hoµn toµn ®óng, tuy nhiªn, ph¬ng ph¸p sau hay ®îc dïng h¬n v× mét sè lý do. Xö lý riªng ¶nh ®é chãi th× b¹n sÏ tiÕt kiÖm ®îc sè phÐp tÝnh to¸n, vµ nÕu b¹n dïng phÇn cøng cho läc thêi gian thùc th× ph¬ng ph¸p nµy sÏ rÊt tiÕt kiÖm phÇn cøng. 11.7.1 Läc riªng ba mµu chÝnh Ph¬ng ph¸p nµy ®îc tr×nh bµy nh h×nh 11.8. TÊt c¶ c¸c mµu chÝnh ®îc läc riªng biÖt, sau ®ã ®îc khuyÕch ®¹i bï l¹i suy gi¶m do bé läc g©y ra. Ph¬ng ph¸p nµy, nÕu lµm b»ng phÇn cøng, sÏ ®ßi hái ba bé läc riªng biÖt. KhuÕch Läc mµu ®á ®¹i ¶nh ®· läc ¶nh mµu KhuÕch Läc mµu lôc ®¹i KhuÕch Läc mµu ®¹i H×nh 11.8 Läc riªng biÖt ba mµu chÝnh. Bµi tËp 11.1 1. LËp mét ch¬ng tr×nh läc ¶nh mµu dïng s¬ ®å h×nh 11.8. Bé läc cã thÓ lµ kiÓu FIR hoÆc lµ kiÓu IIR, vµ kh«ng nhÊt thiÕt ph¶i cã cïng ®¸p øng tÇn sè, vÝ dô, tÝn hiÖu ®á cã thÓ läc qua bé läc th«ng cao, tÝn hiÖu lam qua bé läc th«ng thÊp, vµ mµu lôc ®i qua bé läc th«ng tÊt. 2. KiÓm tra ch¬ng tr×nh trªn ¶nh "AUTHOR.IMG" ®· cã s½n trªn ®Üa. Dïng bé läc FIR th«ng cao ®îc thiÕt kÕ theo kiÓu xÊp xØ víi tÇn sè c= 1.0 rad/®¬n vÞ cho tÊt c¶ ba mµu thµnh phÇn. 11.7.2 Läc riªng ¶nh tÝn hiÖu chãi Mét tÝnh chÊt cña hçn hîp mµu (xem phÇn 11.2) lµ mét ®iÓm ¶nh mµu th× ®éc lËp víi ®é chãi cña ¶nh trªn mét ph¹m vi réng. Dùa trªn tÝnh chÊt 254
- nµy, ta cã thÓ läc mét ¶nh mµu mµ kh«ng lµm thay ®æi c¸c mµu cña nã. V× vËy mµ bé läc chØ cho ra tÝn hiÖu chãi. ¶nh ®· ®îc läc tÝn hiÖu chãi cã thÓ dïng ®Ó söa l¹i møc cña ba mµu chÝnh mµ kh«ng thay ®æi tû lÖ R:G:B t¹i tÊt c¶ c¸c ®iÓm. Ch¬ng tr×nh lµ c¸ch gi¶i thÝch tèt nhÊt cho s¬ ®å h×nh 11.8. Còng cÇn ph¶i nãi r»ng c¸c mµu chÝnh lÊy ra ®· ®îc söa l¹i møc t¹i tÊt c¶ c¸c ®iÓm b»ng hµm khuyÕch ®¹i, hµm nµy rót ra b»ng chia tÝn hiÖu chãi lÊy ra cho c¸c ®iÓm mµ ta ®· lÊy tÝn hiÖu chãi vµo. NÕu nh trong ph¬ng ph¸p tríc, ba bé läc cho ba mµu chÝnh cã ®¸p øng tÇn sè ®éc lËp, th× ph¬ng ph¸p nµy sÏ cho kÕt qu¶ gÇn nh ®éc lËp víi ph¬ng ph¸p tríc. Bµi tËp 11.2 LËp mét ch¬ng tr×nh C läc ¶nh mµu dïng s¬ ®å h×nh 11.9. Chó ý nÕu Yi = 0.0, th× tÝn hiÖu ra khái bé läc cã R0 = G0 = B0 = 0.0. KiÓu bé läc cã thÓ lµ FIR hoÆc lµ IIR. 11.8 Lùa chän hÖ sè söa l¹i s¾c mµu vµ läc Mét vÊn ®Ò khã kh¨n trong xö lý ¶nh mµu lµ söa l¹i s¾c mµu cña mét mµu ®Æc biÖt mµ kh«ng lµm ¶nh hëng c¸c mµu cßn l¹i. Mét ph¬ng ph¸p hay dïng ®ã lµ söa l¹i c¸c mµu chÝnh ®Õn møc chÝnh x¸c cã thÓ, cïng lóc c©n b»ng c¸c mµu cßn l¹i ®Ó h×nh ¶nh cã mµu tù nhiªn. MÆc dï, ®é chÝnh x¸c lµ sù c©n b»ng tÊt c¶ c¸c s¾c mµu sao cho h×nh ¶nh cã mµu s¾c tù nhiªn b»ng c¸c thay ®æi ba s¾c mµu chÝnh. Ph¬ng ph¸p lùa chän thay ®æi s¾c mµu cña c¸c mµu ®Æc biÖt mµ kh«ng ¶nh hëng c©n b»ng mµu víi phÇn cßn l¹i cña ¶nh. Ph¬ng ph¸p nµy gäi lµ thay ®æi s¾c mµu cã lùa chän. Nã cã kh¶ n¨ng lµm t¨ng lªn hoÆc gi¶m ®i mét mµu ®Æc biÖt b»ng c¸ch dïng bé läc mµu lùa chän. C©u hái ®Æt ra lµ: Lµm thÕ nµo chóng ta cã thÓ nhËn ra s¾c mµu ®Æc biÖt? C©u tr¶ lêi cho vÊn ®Ò nµy dùa theo biÓu ®å mµu. Mét líp mµu ®îc lÊy ra b»ng c¸ch chia biÓu ®å mµu thµnh c¸c miÒn mµu, mçi miÒn chøa mét mµu ®Æc biÖt (xem h×nh 11.10). Trong h×nh 11.10, G = lôc, Y = vµng, ST = skin tone(amber), R = ®á, M = ®á t¬i, B = lam, vµ C = xanh níc biÓn. C¸c ®êng th¼ng (tõ l0 ®Õn l6) chia thµnh c¸c mµu dùa trªn c¶m gi¸c cña con ngêi. BiÓu thøc cña c¸c ®êng th¼ng nµy: y 0.333 xi 0.333 x 0.333 yi 0.333 (11.5) ë ®©y Pi(xi,yi) vµ {i = 0 ®Õn 6} lµ ®iÓm cho trong h×nh. BiÓu thøc cho c¸c ®êng nµy cã thÓ cho díi d¹ng 255
- (11.6) y mi x ci Y Ro R o Y1 ¶nh ®· Y Go G o Sinh ra Yo Y1 läc. Bé läc. Y1 Y1=R + 4.5907G + 0.0601B Y Bo B o Y1 H×nh 11.9 Ph¬ng ph¸p chØ läc tÝn hiÖu chãi. y G (0.2757, 0.7147) P0(0.408, 0.585) G l0 P1(0.479, 0.517) Y P6 l1 l2 P2(0.532, 0.465) (0.229, 0.424) l 6 (0.333, 0.333) l5 R(0.735, 0.265) R l4 l3 P5 W (0.208, 0.285) M P3(0.501, 0.160) B P4(0.337, 0.086) B (0.167, 0.009) x H×nh 11.10 Ph©n chia mµu s¾c trong biÓu ®å mµu. ë ®©y mi vµ ci {i= 0 ®Õn 6} cho trong b¶ng 11.2. MiÒn xung quanh ®iÓm (0.333, 0.333), biÓu diÔn cho mµu tr¾ng trong s¬ ®å mµu, cã thÓ xÊp xØ b»ng mét vßng trßn cã b¸n kÝnh r 0,03. Ch¬ng tr×nh cho ph©n chia líp mµu, tÝnh gi¸ trÞ R, G, B cho mét ®iÓm theo: 1. TÝnh X, Y, Z. 2. TÝnh x vµ y. 3. TÝnh: circ = (x - 0.333)2 + (y - 0.333)2 - r2 256
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn