227 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 khoảng từ 400 m (millimicron) cho ánh sáng tím và vào khoảng 700 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, nhng 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 228 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. Hình 11.1 Dải sóng của các ánh sáng nhìn thấy đợc. 1 1 1 1 1 1 A o m mm m km Tia nhìn thấy UV 400 500 600 700 Tím Lam Chàm Lục Vàng Da cam Đỏ Tia vũ trụ Tia Tia x IR Sóng radio SHF UHF VHF SW MW LW Đỏ Đen Đỏ tơi Lam Lục lam Vàng Lục (b) Lục lam Trắng Lục Vàng Đỏ Lam Đỏ tơi (a) 229 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. 230 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. Lục Đỏ Vàng Sáng nhất Bão hoà Giới hạn của cảm giác Màu sắc Tối nhất Lam Tía 231 Lý do mà con ngời có thể phân biệt đợc màu sắc thì hiện nay vẫn cha đợ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 232 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 z y D Z D Y D X x (11.2) x + y + z = 1 (nm) 400 500 600 700 1.0 0.8 0.6 0.4 0.2 0 Tím Lam Lục Vàng cam Đỏ cam Đỏ Quan hệ độ sáng . Lục (R) (B) Lam Lục lam Vàng Đỏ Trắng Đỏ tơi Các sắc màu khác (G) (G') . . . y x 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0.80.7 0.6 0.5 0.4 0.3 0.2 0.1 Bớc sóng 233 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. R B Đen Độ chói W Bóng xám G 234 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à 2 18 = 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 lu giữ khung màu, nhng để 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 235 đ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 <custom.h> /* 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. 236 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<32768;i++) { B=(0x001F & i); G=(0x03E0 & 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 cha đợ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); . 227 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. . 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. 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. 7 518 G + 1. 1300B Y = 1. 0000R + 4.5907G + 0.0601B (11 .1) Z = 0.0000R