1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng Dẫn Tách Biên Ảnh Màu

19 285 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 229,82 KB

Nội dung

TÁCH BIÊN ẢNH MÀU TÁCH BIÊN ẢNH MÀU I Cơ sở lý thuyết tách biên Tách biên phương pháp thông dụng để tách theo nghóa gián đoạn giá trò cường độ Sự gián đoạn tách sử dụng đạo hàm bậc bậc hai Đạo hàm bậc lựa chọn xử lý ảnh gradient (độ dốc) Gradient hàm 2-D f ( x, y ) đònh nghóa dạng vectơ  f  G  x   f      fx  G y     y  Biên độ vectơ này:  f  mag (f )  G x2  G y2  1/   f / x 2  f / y 2  1/ Để tính toán đơn giản, số xấp xỉ cách sử dụng giá trò tuyệt đối f  G x  G y Xấp xỉ dạng đạo hàm: là, chúng vùng có cường độ không đổi, giá trò chúng tỷ lệ với bậc thay đổi cường độ vùng có giá trò pixel biến thiên Nó xem biên độ gradient xấp xỉ đơn giản dạng “gradient” Đặc tính vectơ gradient điểm hướng có tỷ lệ thay đổi hàm f tọa độ ( x, y ) lớn Góc xảy tỷ lệ thay đổi lớn là:  Gy  ( x, y )  tan 1   Gx     Một phương pháp then chốt đưa ước đoán đạo hàm G x G y theo phương pháp số Các phương pháp khác dùng hàm edge thảo luận sau phần Đạo hàm bậc hai xử lý ảnh tính sử dụng toán tử Laplace Toán tử Laplace hàm 2-D f ( x, y ) cho dạng vi phân bậc hai sau:  f ( x, y )  f ( x, y )  f ( x, y )   x y 2 Toán tử Laplace dùng để tách biên vì, vi phân bậc hai,dễ bò ảnh hưởng nhiễu, biên độ sinh biên kép, tách hướng biên Tuy nhiên , toán tử Laplace phần bổ sung mạnh sử dụng kết hợp với kỹ thuật tách biên khác Ví dụ, biên kép không thích hợp để tách biên trực tiếp, đặc tính dùng để đònh vò biên Ý tưởng đằng sau tách biên tìm nơi ảnh có cường độ thay đổi nhanh, sử dụng hai tiêu chuẩn tổng quát sau: TÁCH BIÊN ẢNH MÀU Tìm nơi đạo hàm bậc cường độ sáng có biên độ ngưỡng Tìm nơi đạo hàm bậc hai cường độ sáng có chỗ chéo Các hàm biên IPT (Image Processing Toolbox) cung cấp số ước lượng đạo hàm dựa tiêu chuẩn nói tới Đối với số ước lượng này, xác đònh tách biên có nhạy với biên ngang hay biên dọc hay không hai Cấu trúc tổng quát hàm [g, t] = edge (f, ‘method’, parameters) Trong f ảnh đầu vào, method phương pháp liệt kê bảng 1, parameters tham số thêm vào giải thích sau Trong ngõ ra, g mảng logic với giá trò vò trí điểm biên tách không tách Tham số t tùy chọn, cho ngưỡng dùng biên để xác đònh giá trò gradient đủ mạnh để gọi điểm biên Bảng Bộ tách biên Các đặc tính Tìm biên dùng xấp xỉ Sobel với đạo hàm cho hình Sobel 1(b) Tìm biên dùng xấp xỉ Prewitt với đạo hàm cho Prewitt hình 1(c) Tìm biên dùng xấp xỉ Roberts với đạo hàm cho Roberts hình 1(d) Laplacian of a Tìm biên cách tìm điểm chéo sau lọc qua lọc Gauss Gaussian (LoG) Zero crossings Canny Tìm biên cách tìm điểm chéo sau lọc qua lọc xác đònh người sử dụng Tìm biên cách tìm cực đại đòa phương gradient f ( x, y ) Gradient tính toán dùng đạo hàm lọc Gauss Phương pháp dùng hai ngưỡng để tách biên mạnh yếu, gộp biên yếu ngõ chúng kết nối với biên mạnh Do đó, phương pháp thích hợp để tách biên yếu thật TÁCH BIÊN ẢNH MÀU I.1.Bộ tách biên Sobel Bộ tách biên Sobel sử dụng mặt nạ hình 1(b) để xấp xỉ đạo hàm bậc G x G y Nói cách khác, gradient điểm tâm lân cận tính theo tách Sobel:  g  G x2  G y2  1/  {[( z  z  z )  ( z1  z  z )]  [( z  z  z )  ( z1  z  z )] }1 / Khi đó, ta nói vò trí (x,y) pixel biên g  T vò trí đó, T ngưỡng đònh z1 z2 z3 z4 z5 z6 z7 z8 z9 Image neighborhood -1 -1 -1 0 -2 1 -1 G x  ( z  z8  z9 )  ( z1  z  z3 ) G y  ( z3  z  z9 )  ( z1  z  z ) -1 -1 -1 -1 0 -1 1 1 -1 Prewitt G y  ( z3  z  z9 )  ( z1  z  z ) G x  ( z  z8  z9 )  ( z1  z  z3 ) -1 0 -1 1 G x  z9  z5 Sobel Roberts G y  z8  z Hình Một số mặt nạ tách biên đạo hàm bậc chúng thực TÁCH BIÊN ẢNH MÀU Bộ tách biên Sobel thực cách lọc ảnh, f, (dùng imfilter) với mặt nạ bên trái hình 1(b), lọc lại f với mặt nạ khác, bình phương giá trò pixel với ảnh lọc, cộng hai kết quả, tính bậc hai Các thích tương tự phần thứ thứ bảng Hàm edge đơn giản gói toán tử trước thành hàm gọi thêm vào dặc tính khác, chẳng hạn chấp nhận giá trò ảnh ngưỡng xác đònh ngưỡng cách tự động Thêm vào đó, edge chứa kỹ thuật tách biên không thực trực tiếp imfilter Cú pháp gọi tách Sobel tổng quát [g , t ] = edge(f, ‘sobel’, T, dir) Trong f ảnh đầu vào, T ngưỡng đònh dir xác đònh hướng cần tính tách biên: ‘ngang’, ‘dọc’ hai Như nói, g ảnh logic chứa giá trò nơi biên tách giá trò nơi biên tách Tham số t ngõ tùy chọn Nó giá trò ngưỡng dùng edge Nếu T dược đònh t = T Mặt khác T không đònh (hoặc để rỗng []), f đặt t với ngưỡng tự động xác đònh sau sử dụng cho việc táchbiên lý cho việc gộp t tham số ngõ để nhận giá trò khởi tạo cho ngưỡng Hàm edge sử dụng tách Sobel mặc đònh cú pháp g = edge (f), [g, t] = edge(f) I.2.Bộ tách biên Prewitt Bộ tách biên Prewitt sử dụng mặt nạ hình 1(c) để xấp xỉ theo phương pháp số đạo hàm bậc G x G y Cú pháp gọi tổng quát là: [g , t ] = edge(f, ‘prewitt’, T, dir) Tham số hàm đồng với tham số Sobel Bộ tách Prewitt đơn giản để thực máy tính so với tách Sobel, có khuynh hướng sinh chút nhiễu (Nó thể qua hệ số tách biên làm trơn) I.3.Bộ tách biên Roberts Bộ tách biên Roberts sử dụng mặt nạ hình 1(d) để xấp xỉ theo phương pháp số đạo hàm bậc G x G y Cú pháp gọi tổng quát là: [g , t ] = edge(f, ‘roberts’, T, dir) Tham số hàm đồng với tham số Sobel Bộ tách Roberts tách biên xưa xử lý ảnh số theo hình 1(d), đơn giản Bộ tách biên dùng đáng kể tách khác chức giới hạn (ví dụ, không đối xứng tổngquát hóa để tách TÁCH BIÊN ẢNH MÀU biên thừa số 450) Tuy nhiên, dùng thường xuyên thực phần cứng tính đơn giản tốc độ yếu tố chi phối I.4.Bộ tách biên Laplace hàm Gauss (LoG) Xét hàm Gauss  h( r )  e r2 2 Trong r  x  y  độ lệch chuẩn Đây hàm trơn, chập với ảnh, làm mờ ảnh Độ mờ xác đònh giá trò  Toán tử Laplace hàm (đạo hàm bậc theo r): r2  r     2 2  h( r )    e    Với lý rõ ràng, hàm gọi toán tử Laplace hàm Gauss (LoG) Vì đạo hàm bậc hai toán tử tuyến tính, chập (lọc) với ảnh  h(r ) giống chập ảnh với hàm trơn sau tính kết toán tử Laplace Đây chìa khóa khái niệm tách LoG Chúng ta chập ảnh  h(r ) biết có tác động: làm mòn ảnh (do giảm nhiễu) tính toán tử Laplace, làm cong ảnh biên kép Đònh vò biên sau tìm điểm giao zero biên kép Cú pháp gọi tổng quát là: [g , t ] = edge(f, ‘log’, T, sigma) Trong sigma độ lệch chuẩn tham số lại giống phần trước Giá trò mặc đònh sigma Như nói, bỏ qua biên không lớnhơn T Nếu T không cho, rỗng [ ], edge chọn giá trò cách tự động Đặt T từ tạo biên đường viền kín, đặc tính quen thuộc phương pháp LoG I.5.Bộ tách biên điểm giao zero Bộ tách biên dựa khái niệm giống phương pháp LoG, phép chập thực sử dụng hàm lọc đònh H Cú pháp gọi hàm [g , t ] = edge(f, ‘zerocross’, T, H) Các tham số khác giải thích tách LoG TÁCH BIÊN ẢNH MÀU I.6.Bộ tách biên Canny Bộ tách biên Canny (Canny [1986]) tách biên mạnh cung cấp hàm edge Có thể tóm tắt phương pháp sau: Ảnh làm trơn sử dụng lọc Gauss với độ lệch chuẩn  , để giảm nhiều Gradient cục  ( x, y )  tan 1 ( Gy Gx bộ,  g ( x, y )  G x2  G y2  1/ hướng biên ) , tính toán điểm Một kỹ thuật đầu bảng 10.1 để tính G x G y Một điểm biên đònh nghóa điểm có độ dài cực đại đòa phương theo hướng gradient Điểm biên xác đònh (2) tăng lên đến đỉnh gradient biên độ ảnh Sau thuật toán tìm đỉnh đỉnh đặt giá trò vào tất pixel không thật nằm đỉnh tạo đường mỏng ngõ ra, trình biết nén lại không cực đại Các pixel đỉnh đặt ngưỡng dùng hai ngưỡng, T1 T2 Các pixel đỉnh lớn T2 gọi pixel biên “mạnh” Các pixel đỉnh nằm T1 T2 gọi pixel biên “yếu” Cuối cùng, thuật toán thực biên kết nối cách kết hợp pixel yếu mà có dạng kết nối-8 với pixel mạnh Cú pháp tách biên Canny là: [g , t ] = edge(f, ‘canny’, T, sigma) Trong T vectơ, T  T1 T2  ngưỡng giải thích bước thủ tục trước sigma độ lệch chuẩn lọc làm trơn Nếu t gộp vào thông số ngõ ra, vectơ phần tử chứa giá trò ngưỡng dùng thuật toán Cú pháp đơn giản giải thích phương pháp khác, bao gồm việc tự động tính toán T không cung cấp Giá trò mặc đònh sigma TÁCH BIÊN ẢNH MÀU II.Cơ sở tách biên ảnh màu II.1 Đặc tính ảnh màu Matlab Công cụ xử lí ảnh màu Matlab thực hai kiểu ảnh màu indexed images RGB images II.1.1 Ảnh RGB Ảnh RGB mảng pixel màu M x N x Mỗi pixel màu kết hợp ba thành màu red, green blue ảnh màu vò trí không gian (xem hình 2) Hình Cách mà pixels ảnh RGB hình thành từ pixels ba ảnh thành phần Một ảnh RGB xem xếp ba ảnh mức xám mà cho vào ngõ vào red, green blue hình màu tạo ảnh màu hình Ba ảnh hình thành từ ảnh màu RGB ảnh thành phần red, green blue Lớp liệu ảnh thành phần xác đònh miền giá trò chúng Nếu ảnh RGB thuộc lớp double miền giá trò [0, 1].Tương tự ta có miền giá trò [0, 255] [0, 65535] tương ứng với ảnh màu RGB thuộc lớp uint8 uint16 Số lượng bit sử dụng để đại diện cho giá trò pixel ảnh thành phần xác đònh chiều sâu bit ảnh RGB Ví dụ ảnh thành phần ảnh bit suy ảnh RGB tương ứng 24 bit Nói chung số bit ảnh thành phần Số màu có ảnh RGB TÁCH BIÊN ẢNH MÀU (2b )3 , b số bit ảnh thành phần Ví dụ trường hợp bit số màu 16,777,216 Giả sử fR, fG fB đại diện cho ba ảnh thành phần RGB Một ảnh RGB hình thành từ ảnh cách sử dụng toán tử cat (concatenate) để xếp ảnh này: rgb_image = cat(3, fR,fG,fB) Không gian màu RGB thường biểu diễn dạng hình học khối màu RGB (nó mô tả hình 2) Các màu sơ cấp (red, green, blue) màu thứ cấp ( cyan, magenta, yellow) đựơc bố trí đỉnh hình3 Hình Sơ đồ nguyên lý hình hộp màu RGB biểu diễn màu sơ cấp thứ cấp đỉnh Các điểm dọc theo đường chéo có giá trò xám từ đen gốc tọa độ đến trắng điểm (1,1,1) II.1.2 Ảnh Index Ảnh index có hai thành phần : ma trận liệu số nguyên, X, ma trận đồ màu, map Ma trận map mảng m x lớp double chứa giá trò miền [0 1] Chiều dài, m, map với số màu mà đònh có Mỗi hàng map xác đònh thành phần red, green blue màu đơn Màu pixel xác đònh cách sử dụng giá trò nguyên tương ứng ma trận X đến map (bản đồ màu) Nếu X thuộc lớp double tất thành phần với giá trò nhỏ đến hàng đầu map, tất thành phần với giá trò đến hàng thứ vân vân Nếu X thuộc lớp TÁCH BIÊN ẢNH MÀU uint8 uint16 tất thành phần với giá trò đến hàng đầu map, tất thành phần với giá trò đến hàng vân vân Những khái niệm mô tả hình Hình Các phần tử ảnh index Chú ý giá trò phần tử mảng số nguyên X xác đònh thứ tự hàng đồ màu Mỗi hàng chứa ba RGB L tổng số hàng Để hiển thò ảnh index ta viết: >> imshow(X,map) cách khác: >> image(X) >> colormap(map) Một đồ màu lưu trữ với ảnh index tự động load với ảnh hàm imread sử dụng để load ảnh Đôi cần thiết để xấp xỉ ảnh index thành ảnh index với số màu Để thực ta dùng hàm imapprox: [Y, newmap] = imapprox(X, map, n) Hàm trả mảng Y với đồ màu newmap mà có nhiều n màu Mảng đầu vào X thuộc lớp uint8, uint16, double Ngõ Y thuộc lớp uint8 n nhỏ 256 Nếu n lớn 256, Y thuộc lớp double Khi số hàng đồ màu nhỏ số giá trò nguyên phân biệt X, nhiều giá trò khác X hiển thò với màu đồ màu Một ảnh TÁCH BIÊN ẢNH MÀU lung tung hiển thò chiều dài đồ màu vựơt tầm cho phép giá trò thành phần X Có vài cách để xác đònh đồ màu Có thể sử dụng lệnh sau: >> map(k , : ) = [r(k) g(k) b(k)] đó, [r(k) g(k) b(k)] giá trò RGB vò trí hàng thứ k đồ màu Bảng cho giá trò RGB số màu Bất ba đònh dạng bảng sử dụng để xác đònh màu Ví dụ, màu thay đổi thành xanh lụcbằng cách dùng ba câu lệnh sau: >> whitebg(‘g’) >> whitebg(‘green’) >> whitebg([0 0]) Các màu thêm vào thể bảng liên quan đến giá trò thập phân Ví dụ [0.5 0.5 0.5] màu xám, [0.5 0] màu đỏ tối, [0.49 0.83] màu ngọc xanh biển Matlab cung cấp số bảng đồ màu đònh nghóa trước, truy cập sử dụng câu lệnh >> colormap( map_name) đặt đồ màu thành ma trận map_name Ví dụ: >> colormap(copper) copper số đồ màu Matlab đònh nghóa trước Màu đồ thay đổi mòn từ đen đến màu đồng sáng Nếu ảnh cuối hiển thò ảnh index, lệnh thay đổi đồ màu thành copper Theo lựa chọn ảnh hiển thò trực tiếp với đồ màu mong muốn: >>imshow( X, copper) Một số đồ màu có sẵn Matlab Chiều dài (số màu) đồ xác đònh cách gửi kèm theo dấu ngoặc Ví dụ: gray(16) tạo đồ màu với 16 mức xám Bảng Các giá trò RGB số màu Tên đầy đủ Black Blue Green Cyan Red Magenta Yellow White Tên viết tắt k b g c r m y w Giá trò RGB [0 0] [0 1] [0 0] [0 1] [1 0] [1 1] [1 0] [1 1] 10 TÁCH BIÊN ẢNH MÀU II.2 Tách biên ảnh màu dùng phương pháp Gradient Phương pháp thường dùng để xấp xỉ đạo hàm sai số pixel cáclân cận nhỏ ảnh Hình biểu diễn lân cận kích thước x3 z giá trò pixel Một xấp xỉ đạo hàm riêng phần theo x (phương dọc) tâm điểm vùng (z5) cho độ chênh lệch: G x   z  z8  z9    z1  z  z3  Tương tự đạo hàm theo phương y xấp xỉ độ chênh lệch G y   z3  z  z9    z1  z  z  Các số tính dễ dàng điểm ảnh phép chập (sử dụng hàm imfilter) ảnh với mặt nạ hình Sau xấp xỉ đáp ứng gradient ảnh thu cách cộng hai trò tuyệt đối hai ảnh chập Các mặt nạ nói tới mặt nạ Sobel, tạo dùng hàm fspecial Gradient tính toán theo cách mô tả phương pháp thường dùng để tách biên ảnh xám, thảo luận phần I Quan tâm ta lúc tính gradient không gian màu RGB Tuy nhiên phương pháp vừa đưa ứng dụng không gian 2D không mở rộng cho không gian có chiều lớn Cách để sử dụng ảnh RGB tính gradient thành phần màu sau kết hợp kết Không may thay, theo phần sau, điều không giống việc tính toán không gian vectơ RGB cách trực tiếp Do vấn đề đònh nghóa gradient ( biên độ hướng) vectơ c đònh nghóa:  c R ( x, y )   R ( x, y )  c( x, y )  cG ( x, y )  G ( x, y )     c B ( x, y )   B( x, y )  Theo sau cách mà khái niệm gradient mở rộng với hàm vectơ Lại nói hàm vô hướng f(x,y) gradient vectơ mà hướng tỉ lệ thay đổi cực đại tọa độ (x,y) Lấy r, g b vectơ đơn vò theo trục R, G B không gian màu RGB đònh nghóa vectơ : R G B r g b x x x R G B v r g b y y y u 11 TÁCH BIÊN ẢNH MÀU Đặt số g xx , g xy g yy đònh nghóa sau: g xx g yy g xy R G B  u u  u u    x x x T 2 R G B vv v v    y y y R R G G B B  u  v  uT v    x y x y x y T Nhớ R, G B giá trò g hàm x y Dùng ý thể Di Zenzo [1986] nói hướng tỉ lệ thay đổi cực đại c(x,y) hàm (x,y)  g xy    x, y   tan 1    g xx  g yy  giá trò tỉ lệ thay đổi (biên độ gradient) theo hướng cho phần tử Chú ý  ( x, y ) F ( x, y ) ảnh có kích cỡ với ảnh đầu vào Các phần tử  ( x, y ) góc điểm gradient tính va F ( x, y ) ølà ảnh gradient 1/ 1  F  x, y    g xx  g yy   g xx  g yy cos 2  g xy sìn 2  2  Vì tan  tan(   )  nghiệm phương trình tan-1 trước,    / Thêm vào F ( x, y )  F   ( x, y ) , F cần tính với giá trò  nửa khoảng [0,  ) Sự thật phương trình tan-1 cho hai giá trò   lệch 900 nghóa phương trình nghiệm với cặp (x,y) có hướng vuông góc Dọc theo hướng F cực đại, cực tiểu theo hướng lại, kết nhận cách chọn giá trò lớn điểm Đạo hàm kết dài, đạt mục đích thảo luận chúng tabằng cách chi tiết Đạo hàm riêng phần tính toán toán tử Sobel thảo luận trước Hàm theo sau tính gradient ảnh RGB: [VG, A, PPG] = colorgrad(f,T) f ảnh RGB, T ngưỡng tự chọn nằm khoảng [0 1] (Mặc đònh 0); VG vecto gradient RGB F ( x, y ) ; A ảnh góc  ( x, y ) tính rad; PPG gradient tính lấy tổng gradient 2D không gian màu riêng biệt Các gradient laR x, y  , G  x, y  , B x, y  toán tử  đònh nghóa phần trước Tất đạo hàm cần để thực phương trình 12 TÁCH BIÊN ẢNH MÀU thực hàm colorgrad sử dụng toán tử Sobel Các ngõ VG PPG chuẩn hóa khoảng [0 1] colorgrad chúng đặt ngưỡng để VG(x,y) =0 giá trò nhỏ T VG(x,y) = VG(x,y) trường hợp khác Chú thích tương tự PPG III Thuật toán tách biên ảnh màu Ảnh RGB Tính đạo hàm x y thành phần ảnh với mặt nạ chọn Tính tham số vector gradient gxx, gyy, gxy ==> 1 ,  Tính F ( x, y )  max F ( x, y ), F ( x, y )  chuẩn hóa khoảng [0,1] So sánh với ngưỡng T ta ảnh tách biên 13 TÁCH BIÊN ẢNH MÀU IV Chương trình M_File IV.1 Hàm colorgrad function[VG,A,PPG]=colorgrad(f,dec,T) %COLORGRAD TINH VECTO GRADIENT CUA MOT ANH MAU RGB %function[VG,A,PPG]=colorgrad(f,T) tinh vector gradient,VG, va mang goc %tuong ung,VA, (don vi radians) cua anh RGB f No cung tinh PPG, gradient %ket hop tu cac vung mau ma co duoc bang cach cong cac gradient hai chieu %cua cac vung mau don Ngo vao T la muc nguong tam [0 1] Neu no duoc %xac dinh bien ngo vao thi gia tri cua VG va PPG duoc lay nguong bang %cach tao VG(x,y)=0 gia tri [...]... V Kết quả Hình 5 Hai mặt nạ Sobel và Prewitt với ngưỡng T = 0 16 TÁCH BIÊN ẢNH MÀU Hình 6 Hai mặt nạ Sobel và Prewitt với ngưỡng T = 0.25 Hình 7 Hai mặt nạ Sobel và Prewitt với ngưỡng T = 0.5 17 TÁCH BIÊN ẢNH MÀU Hình 8 Hai mặt nạ Sobel và Prewitt với ngưỡng T = 0.75 Hình 9 Hai mặt nạ Sobel và Prewitt với ngưỡng T = 1 18 TÁCH BIÊN ẢNH MÀU TÀI LIỆU THAM KHẢO 1 Rafael C Gonzalez, Richard E Woods, Steven... 12 TÁCH BIÊN ẢNH MÀU trên được thực hiện trong hàm colorgrad sử dụng toán tử Sobel Các ngõ ra VG và PPG được chuẩn hóa trong khoảng [0 1] bởi colorgrad và chúng được đặt ngưỡng để VG(x,y) =0 đối với những giá trò nhỏ hơn hoặc bằng T và VG(x,y) = VG(x,y) đối với những trường hợp khác Chú thích tương tự đối với PPG III Thuật toán tách biên ảnh màu Ảnh RGB Tính các đạo hàm x và y của 3 thành phần ảnh. ..TÁCH BIÊN ẢNH MÀU II.2 Tách biên ảnh màu dùng phương pháp Gradient Phương pháp thường dùng để xấp xỉ các đạo hàm là sai số giữa các pixel trong cáclân cận nhỏ trong một ảnh Hình 1 biểu diễn một lân cận kích thước 3 x3 trong đó z là giá trò pixel Một xấp xỉ của đạo hàm riêng phần theo... nargin==3 VG=(VG>T).*VG; PPG=(PPG>T).*PPG; end %Ket thuc ham colorgrad IV.2 Chương trình tách biên ảnh màu %file thuc hien tach bien anh mau clc; close all; clear all; f=imread('lacda.jpg'); T=0.5; figure(1); subplot(3,1,1); imshow(f); str={['RGB image, threshold T=' num2str(T)]}; title(str); 15 TÁCH BIÊN ẢNH MÀU [VG_S,A_S,PPG_S]=colorgrad(f,'sobel',T); subplot(3,1,2); imshow(VG_S); title('Sobel mask');... mọi điểm trong ảnh bằng phép chập (sử dụng hàm imfilter) ảnh lần lượt với từng mặt nạ trong hình 1 Sau đó xấp xỉ của đáp ứng gradient ảnh thu được bằng cách cộng hai trò tuyệt đối của hai ảnh được chập Các mặt nạ được nói tới là các mặt nạ Sobel, có thể được tạo ra dùng hàm fspecial Gradient được tính toán theo cách được mô tả là một trong những phương pháp thường dùng để tách biên ảnh xám, đã được... được chọn Tính các tham số vector gradient gxx, gyy, gxy ==> 1 , 2  Tính F ( x, y )  max F 1 ( x, y ), F 2 ( x, y )  và chuẩn hóa trong khoảng [0,1] So sánh với ngưỡng T ta được ảnh tách biên 13 TÁCH BIÊN ẢNH MÀU IV Chương trình M_File IV.1 Hàm colorgrad function[VG,A,PPG]=colorgrad(f,dec,T) %COLORGRAD TINH VECTO GRADIENT CUA MOT ANH MAU RGB %function[VG,A,PPG]=colorgrad(f,T) tinh vector gradient,VG,... nói rằng hướng của tỉ lệ thay đổi cực đại của c(x,y) là một hàm (x,y)  2 g xy  1   x, y   tan 1   2  g xx  g yy  và giá trò của tỉ lệ thay đổi (biên độ của gradient) theo các hướng được cho bởi các phần tử của Chú ý rằng  ( x, y ) và F ( x, y ) là các ảnh có cùng kích cỡ với ảnh đầu vào Các phần tử  ( x, y ) là các góc tại mỗi điểm gradient được tính va F ( x, y ) ølà ảnh gradient... là một vectơ mà nó chỉ hướng của tỉ lệ thay đổi cực đại tại tọa độ (x,y) Lấy r, g và b là các vectơ đơn vò theo các trục R, G và B của không gian màu RGB và đònh nghóa các vectơ : R G B r g b x x x R G B v r g b y y y u 11 TÁCH BIÊN ẢNH MÀU Đặt các số g xx , g xy và g yy được đònh nghóa như sau: 2 g xx 2 g yy g xy 2 R G B  u u  u u    x x x 2 T 2 2 R G B vv v v ... cua vec to gradient gxx=Rx.^2+ Gx.^2+ Bx.^2; gyy=Ry.^2+ Gy.^2+ By.^2; gxy=Rx.*Ry+ Gx.*Gy+ Bx.*By; A=0.5*(atan(2*gxy./(gxx-gyy+eps))); G1=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+2*gxy.*sin(2*A)); 14 TÁCH BIÊN ẢNH MÀU %Bay gio lap lai voi goc + pi/2 Sau do chon gia tri cuc dai tai moi diem A = A+pi/2; G2=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+2*gxy.*sin(2*A)); G1=G1.^0.5; G2=G2.^0.5; %Tinh VG bang cach lay gia... trực tiếp Do đó vấn đề là đònh nghóa gradient ( biên độ và hướng) của vectơ c được đònh nghóa:  c R ( x, y )   R ( x, y )  c( x, y )  cG ( x, y )  G ( x, y )     c B ( x, y )   B( x, y )  Theo sau là một trong những cách mà khái niệm gradient được mở rộng với các hàm vectơ Lại nói hàm vô hướng f(x,y) gradient là một vectơ mà nó chỉ hướng của tỉ lệ thay đổi cực đại tại tọa độ (x,y) ... CUA MOT ANH MAU RGB %function[VG,A,PPG]=colorgrad(f,T) tinh vector gradient,VG, va mang goc %tuong ung,VA, (don vi radians) cua anh RGB f No cung tinh PPG, gradient %ket hop tu cac vung mau ma... PPG=(PPG>T).*PPG; end %Ket thuc ham colorgrad IV.2 Chương trình tách biên ảnh màu %file thuc hien tach bien anh mau clc; close all; clear all; f=imread('lacda.jpg'); T=0.5; figure(1); subplot(3,1,1); imshow(f);... ma co duoc bang cach cong cac gradient hai chieu %cua cac vung mau don Ngo vao T la muc nguong tam [0 1] Neu no duoc %xac dinh bien ngo vao thi gia tri cua VG va PPG duoc lay nguong bang %cach

Ngày đăng: 30/10/2015, 18:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w