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).
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 2 P17 Vỉ mạch ATI PIB đư ợc chia ra làm hai mã ngu ồn: một bằng MicrosoftAssembly cho các chương trình vào ra cơ bản, một bằng Microsoft C cho cácchươ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ạchlư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ìnhcon 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ôngph ả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ộtthay đổ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 điều n ày thông qua Project trên menu lựa chọn của môi trườngphá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ácchươ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ũngcó thể dùng nó với kiểu 512 512 mà không cần có một sự thay đổi nào. Nếubạ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 trongchương trình 11.1 cho hiện lên sơ đồ màu trên một monitor m àu dùng vỉ mạchPIB. Chương trình 11.1 CHROM.C.Displaying the chromaticity diagram.#include /* Program for displaying the chromaticity diagramusing the ATI PIB board, 512x256 version. */void main() { unsigned i,R,G,B; int xp,yp; 234 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. 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 valuespecified. 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ởiATI. 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ìnhnày. Liệt kê cho custom.h cung cấp ở dư ới đây.custom.h 235void 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);void SetMask(unsigned);void SetCamera(int);void SetPIBorEGA(int);void SetBlank(int);void FillPibRect(unsigned,int,int,int,int,int);void WaitEven(void);void WaitOdd(void);int InitPIB(void);int TestRow(int);int WaitVsync(void);void FillPibRow(unsigned,int,int,int,int);void FGetPibRow(char far *,int,int,int);void FPutPibRow(char far *,int,int,int);void GetPibRow(char far *,int,int,`int);void PutPibRow(char far *,int,int,int);unsigned GetPixel(unsigned *,int,int);void PutPixel(unsigned *,int,int,int);void SaveData(unsigned,unsigned,int);void SetBright(int); Biểu đồ màu cho các m àu tính ra b ằng vỉ mạch PIB đ ược giới thiệu ở cuốicuốn sách này. Nếu bạn có phần kiểm tra vật lý của độ sáng (ví dụ nhưCollege Physic) b ạn sẽ có thể so sánh biểu đồ m àu của kiểm tra vật lý với kếtqu ả rút ra từ chương trình 11.1. Nếu hệ thống có khả năng hiện nhiều m àu hơnbạn sẽ có một sơ đồ d ày đặc h ơn. Bây giờ ta sẽ so sánh vỉ mạch PIB với vỉ mạch VGA. Để làm như việc nàybạn sẽ phải tính ra một bảng màu có cùng một số mức của đỏ, lục, lam. Nếucác màu chính có 26 = 64 mức trên VGA, bạn có thể chọn các m ức 0, 12, 24,36, 48, và 60 ...