Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox

275 833 3
Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox

Đ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

Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox

Mục lục Các kiểu ảnh , thao tác ảnh Toolbox - Trang Phép xử lý vùng chọn - Trang 16 Xử lý ảnh mờ Trang 23 Màu sắc - Trang 38 Biến đổi ảnh - Trang 52 Biến đổi không gian ảnh Trang 78 Phân tích làm giàu ảnh Trang 98 Các biến đổi hình thái ảnh - Trang 129 I – Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox Ảnh định số ( Indexed Images ) - Một ảnh số bao gồm ma trận liệu X ma trận đồ màu map Ma trận liệu có kiểu thuộc lớp uint8,uint16 kiểu double Ma trận đồ màu mảng mx3 kiểu double bao gồm giá trị dấu phẩy động nằm Mỗi hàng đồ giá trị mà : red , green blue màu đơn Một ảnh số sử dụng ánh xạ trực tiếp giá trị pixel ảnh tới giá trị đồ màu Màu sắc pixel ảnh tính tốn cách sử dụng giá trị tương ứng X ánh xạ tới giá trị số map Giá trị hàng , giá trị hàng thứ hai đồ màu … - Một đồ màu thường chứa với ảnh số tự động nạp với ảnh sử dụng hàm imread để đọc ảnh Tuy nhiên , ta không bị giới hạn sử dụng đồ màu mặc định , ta sử dụng kì đồ màu Hình sau minh hoạ cấu trúc ảnh số Các pixel ảnh đại diện số nguyên ánh xạ tới giá trị tương ứng đồ màu (ẢNH ) Lớp độ lệch đồ màu ( Colormap Offsets ) - Quan hệ giá trị ma trận ảnh giá trị đồ màu phụ thuộc vào kiểu giá trị phần tử ma trận ảnh Nếu phần tử ma trận ảnh thuộc kiểu double , giá trị tương ứng với giá trị hàng thứ đồ màu , giá trị tương ứng với giá trị hàng thứ đồ màu … Nếu phần tử ma trận ảnh thuộc kiểu uint8 hay uint16 có độ lệch (offset ) – giá trị ma trận ảnh tương ứng với giá trị hàng đồ màu , giá trị tương ứng với giá trị hàng thứ đồ màu … - Độ lệch sử dụng việc định dạng file ảnh đồ hoạ để tăng tối đa số lượng màu sắc trợ giúp Giới hạn việc trợ giúp ảnh thuộc lớp unit16 - Toolbox xử lý ảnh Matlab trợ giúp có giới hạn ảnh số thuộc lớp uint16 Ta đọc ảnh hiển thị chúng Matlab trước xử lý chúng , ta phải chuyển đổi chúng sang kiểu uint8 double Để chuyển đổi ( convert ) tới kiểu double ta dùng hàm im2double Để giảm số lượng màu ảnh xuống 256 màu (uint8 ) sử dụng hàm imapprox Ảnh cường độ ( Intensity Images ) - Một ảnh cường độ ma trận liệu ảnh I mà giá trị đại diện cho cường độ số vùng ảnh Matlab chứa ảnh cường độ ma trận dơn , với phần tử ma trận tương ứng với pixel ảnh Ma trận thuộc lớp double , uint8 hay uint16 Trong ảnh cường độ lưu với đồ màu , Matlab sử dụng đồ màu để hiển thị chúng - Những phần tử ma trận cường độ đại diện cho cường độ khác độ xám Những điểm có cường độ thường đại diện màu đen cường độ 1,255 65535 thường đại diện cho cường độ cao hay màu trắng Ảnh nhị phân (Binary Images ) -Trong ảnh nhị phân , pixel chứa hai giá trị nhị phân Hai giá trị tương ứng với bật hoặ tắt ( on off ) Một ảnh nhị phân lưu trữ mảng lơgíc Ảnh RGB ( RGB Images ) - Một ảnh RGB - thường gọi true-color , lưu trữ Matlab dạng mảng liệu có kích thước chiều mxnx3 định nghĩa giá trị màu red, green blue cho pixel riêng biệt Ảnh RGB không sử dụng palette Màu pixel định kết hợp giá trị R,G,B ( Red, Green , Blue ) lưu trữ mặt phẳng màu vị trí pixel Định dạng file đồ hoạ lưu trữ ảnh RGB giống ảnh 24 bít R,G,B chiếm tương ứng bít Điều cho phép nhận 16 triệu màu khác - Một mảng RGB thuộc lớp double , uint8 uint16 Trong mảng RGB thuộc lớp double , thành phần màu có giá trị Một pixel mà thành phần màu (0,0,0) hiển thị với màu đen pixel mà thành phần màu (1,1,1 ) hiển thị với màu trắng Ba thành phần màu pixel lưu trữ với chiều thứ mảng liệu Chẳng hạn , giá trị màu R,G,B pixel (10,5) lưu trữ RGB(10,5,1) , RGB(10,5,2) RGB(10,5,3) tương ứng - Để tính tốn màu sắc pixel hàng cột chẳng hạn , ta nhìn vào ba giá trị lưu trữ (2,3,1:3) Giả sử (2,3,1) chứa giá trị 0.5176 ; (2,3,2) chứa giá trị 0.1608 (2,3,3) chứa giá trị 0.0627 màu sắc pixel (2,3 ) (0.5176,0.1608,0.0627) - Để minh hoạ xa khái niệm ba mặt phẳng màu riêng biệt sử dụng ảnh RGB , đoạn mã sau tạo ảnh RGB đơn giản chứa vùng liên tục R,G,B sau tạo ảnh cho mặt phẳng riêng ( R,G,B ) Nó hiển thị mặt phẳng màu riêng rẽ hiển thị ảnh gốc RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]); R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); imshow(R) figure, imshow(G) figure, imshow(B) figure, imshow(RGB) Các mặt phẳng màu riêng rẽ ảnh RGB - Chú ý mặt phẳng màu riêng rẽ chứa khoẳng trắng Khoảng trắng tương ứng với giá trị cao màu riêng rẽ Chẳng hạn ảnh mặt phẳng R , vùng trắng đại diện cho tập trung cao màu đỏ khiết Nếu R trộn với G B ta có màu xám Vùng màu đen ảnh giá trị pixel mà không chứa màu đỏ R=0 Tương tự cho mặt phẳng màu G B Mảng ảnh nhiều khung hình ( Multiframe Image Arrays ) - Với vài ứng dụng , ta cần làm việc với tập hợp ảnh quan hệ với thời gian khung nhìn MRI hay khung hình phim - Toolbox xử lý ảnh Matlab cung cấp trợ giúp cho việc lưu trữ nhiều ảnh mảng Mỗi ảnh gọi khung hình ( Frame ) Nếu mảng giữ nhiều frame , chúng nối theo chiều Chẳng hạn , mảng với năm ảnh có kích thước 400x300 mảng có kích thước 400x300x3x5 Một ảnh số ảnh cường độ nhiều khung tương tự 400x300x1x5 - Sử dụng lệnh cat để chứa ảnh riêng rẽ mảng nhiều khung hình Chẳng hạn , ta có nhóm ảnh A1,A2,A3,A4 A5 , ta chứa chúng mảng sử dụng A=cat(4,A1,A2,A3,A4,A5 ) - Ta trích khung hình từ ảnh nhiều khung hình Chẳng hạn , ta có ảnh nhiều khung hình MULTI , lệnh sau trích khung hình thứ FRM3=MULTI( : , : , : , ) - Ghi nhớ , mảng ảnh nhiều khung hình , ảnh phải có kích thước có số mặt phẳng Trong ảnh số nhiều khung , ảnh phải sử dụng đồ màu Sự trợ giúp giới hạn với ảnh nhiều khung - Nhiều hàm toolbox hoạt động chiều Ta sử dụng chiều thứ với hàm ta phải xử lý khung hình cách độc lập Chẳng hạn , lời gọi hàm sau hiển thị khung hình thứ mảng MULTI imshow(MULTI(: , : , : , )) - Nếu ta truyền mảng vào hàm mảng có nhiều chiều số chiều mà hàm thiết kế để hoạt động , kết khơng đốn trước Trong số trường hợp , hàm đơn giản xử lý khung hình trường hợp khác , hoạt động khơng tạo kết có ý nghĩa ả- Các hàm chuyển đổi kiểu ảnh - Với thao tác định , thật hữu ích chuyển đổi ảnh từ dạng sang dạng khác Chẳng hạn , ta muốn lọc màu ảnh lưu trữ dạng ảnh số , , ta nên chuyển đổi thành dạng ảnh RGB Khi ta áp dụng phép lọc tới ảnh RGB , Matlab lọc giá trị cường độ ảnh tương ứng Nếu ta cố gắng lọc ảnh số , Matlab đơn giản áp đặt phép lọc tới ma trận ảnh số kết khơng có ý nghĩa Chú ý : Khi convert ảnh từ dạng sang dạng khác , ảnh kết khác ảnh ban đầu Chẳng hạn , ta convert ảnh màu số sang ảnh cường độ , kết ta thu ảnh đen trắng - Danh sách sau liệt kê hàm sử dụng việc convert ảnh : + dither : Tạo ảnh nhị phân từ ảnh cường độ đen trắng cách trộn , tạo ảnh số từ ảnh RGB cách trộng (dither ) + gray2id : Tạo ảnh số từ ảnh cường độ đen trắng + grayslice : Tạo ảnh số từ ảnh cường độ đen trắng cách đặt ngưỡng + im2bw : Tạo ảnh nhị phân từ ảnh cường độ , ảnh số hay ảnh RGB sở ngưỡng ánh sáng + ind2gray : Tạo ảnh cường độ đen trắng từ ảnh số + ind2rgb : Tạo ảnh RGB từ ảnh số + mat2gray : Tạo ảnh cường độ đen trắng từ liệu ma trận cách lấy tỉ lệ giữ liệu + rgb2gray : Tạo ảnh cường độ đen trắng từ ảnh RGB + rgb2ind : Tạo ảnh số từ ảnh RGB - Ta thực phép chuyển đổi kiểu sử dụng cú pháp Matlab Chẳng hạn , ta convert ảnh cường độ sang ảnh RGB cách ghép nối phần copy ma trận ảnh gốc chiều : RGB=cat(3,I,I,I ); - Ảnh RGB thu có ma trận đồng cho mặt phẳng R,G,B ảnh hiển thị giống bóng xám - Thêm vào công cụ chuyển đổi chuẩn nói , có số hàm mà trả lại kiểu ảnh khác phần thao tác mà chúng thực Xem thêm Help Online Chuyển đổi không gian màu - Toolbox xử lý ảnh biểu diễn màu sắc giá trị RGB ( trực tiếp ảnh RGB gián tiếp ảnh số ) Tuy nhiên , có phương pháp khác cho việc biểu diễn màu sắc Chẳng hạn , màu đại diện giá trị hue , saturation giá trị thành phần (HSV ) Các phương pháp khác cho việc biểu diễn màu gọi không gian màu - Toolbox cung cấp tập thủ tục để chuyển đổi không gian màu Các hàm xử lý ảnh tự chúng coi liệu màu sắc dạng RGB nhiên , ta xử lý ảnh mà sử dụng không gian màu khác cách chuyển đổi sang RGB sau chuyển đổi ảnh xử lý trở lại không gian màu ban đầu ầ- Đọc ghi liệu ảnh - Phần giới thiệu cách đọc ghi liệu ảnh Đọc ảnh đồ hoạ - Hàm imread đọc ảnh từ định dạng trợ giúp chiều sâu bit trợ giúp Hầu hết file ảnh sử dụng bít để chứa giá trị pixel Khi chúng đọc vào nhớ , Matlab chứa chúng dạng uint8 Với file trợ giúp 16 bít liệu , PNG TIFF , Matlab chứa chúng dạng uint16 Chú ý : Với ảnh số , imread luôn đọc đồ màu vào chuỗi thuộc lớp double , chí mảng ảnh tự thuộc lớp uint8 hay uint16 - Chẳng hạn , đoạn mã sau đọc ảnh RGB vào không gian làm việc Matlab lưu biến RGB RGB=imread(‘football.jpg’); - Trong ví dụ , imread nhận định dạng file để sử dụng từ tên file Ta định dạng file tham số hàm imread Matlab trợ giúp nhiều định dạng đồ hoạ thông dụng chẳng hạn : BMP , GIF , JPEG , PNG , TIFF … Để biết thêm kiểu gọi hàm tham số truyền vào , xem trợ giúp online Matlab Đọc nhiều ảnh từ file đồ hoạ - Matlab trợ giúp số định dạng file đồ hoạ chẳng hạn : HDF TIFF , chúng chứa nhiều ảnh Theo mặc định , imread trợ giúp ảnh file Để nhập thêm ảnh từ file , sử dụng cú pháp trợ giúp định dạng file Chẳng hạn , sử dụng với TIFF , ta sử dụng giá trị số với imread để ảnh mà ta muốn nhập vào Ví dụ sau đọc chuối 27 ảnh từ file TIFF lưu ảnh anỳ mảng chiều Ta sử dụng hàm iminfo để xem ảnh lưu trữ file : mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array for frame=1:27 [mri(:,:,:,frame),map] = imread('mri.tif',frame); end - Khi file chứa nhiều ảnh theo số kiểu định chẳng hạn theo thứ tự thời gian , ta lưu ảnh Matlab dạng mảng chiều Tất ảnh phải có kích thước Ghi ảnh đồ hoạ - Hàm imwrite ghi ảnh tới file đồ hoạ định dạng trợ giúp Cấu trúc imwrite yêu cầu biến ảnh tên file Nếu ta gộp phần mở rộng tên file , Matlab nhận định dạng mong muốn từ Ví dụ sau tải ảnh số X từ file Mat với đồ màu kết hợp với map sau ghi ảnh xuống file bitmap load clown whos Name X caption map Size 200x320 2x1 81x3 Bytes Class 512000 double array char array 1944 double array Grand total is 64245 elements using 513948 bytes imwrite(X,map,'clown.bmp') Chỉ định dạng phụ - Tham số đặc biệt - Khi sử dụng imwrite với số định dạng đồ hoạ , ta tham số phụ Chẳng hạn , với định dạng PNG ta độ sâu bít tham số phụ Ví dụ sau chi ảnh cường độ I với file ảnh bít PNG imwrite(I,'clown.png','BitDepth',4 ); - Để biết thêm cấu trúc khác hàm xem phần trợ giúp trực tuyến Matlab Đọc ghi ảnh nhị phân theo định dạng bít - Trong số định dạng file , ảnh nhị phân lưu định dạng bít Nếu định dạng file trợ giúp ,Matlab ghi ảnh nhị phân ảnh bít theo mặc định Khi ta đọc ảnh nhị phân với định dạng bít , Matlab đại diện khơng gian làm việc mảng lơgíc - Ví dụ sau đọc ảnh nhị phân ghi dạng file TIFF Bởi định dạng TIFF trợ giúp ảnh bít , file ghi lên đĩa theo định dạng bít : BW = imread('text.png'); imwrite(BW,'test.tif'); Để kiểm tra chiều sâu bít file test.tif , gọi hàm iminfo kiểm tra trường BitDepth : info = imfinfo('test.tif'); info.BitDepth ans = Chú ý : Khi gi file nhị phân , Matlab thiết lập trường ColorType thành ‘grayscale’ Xem lớp lưu trữ file - Hàm imwrite sử dụng luật sau để định lớp lưu trữ sử dụng ảnh kết : + logical : Nếu định dạng ảnh ( Output Image ) rõ trợ giúp ảnh bít , hàm imwrite tạo file ảnh bít Nếu định dạng ảnh rõ không trợ giúp ảnh bít ( JPEG ) , hàm imwrite chuyển ảnh tới ảnh thuộc lớp uint8 + uint8 : Nếu định dạng ảnh rõ trợ giúp ảnh bít , hàm imwrite tạo ảnh bít +uint16 : Nếu định dạng ảnh rõ trợ giúp ảnh 16 bít ( PNG TIFF ) , hàm imwrite tạo ảnh 16 bít Nếu định dạng ảnh không trợ giúp ảnh 16 bít , hàm chuyển đổi liệu ảnh tới lớp uint8 tạo ảnh bít +double : Matlab chuyển liệu ảnh tới dạng uint8 tạo ảnh bít hầu hết file ảnh sử dụng định dạng bít Truy vấn file đồ hoạ - Hàm iminfo cho phép ta nhận thơng tin file ảnh trợ giúp toolbox Thông tin mà ta nhận phụ thuộc vào kiểu file ln bao gồm thơng tin sau : + Tên file ảnh + Định dạng file ảnh + Số version định dạng file + Ngày sửa đổi file gần + Kích thước file tính theo byte + Chiều rộng ảnh tính theo pixel + Chiều cao ảnh tính theo pixel + Số lượng bít pixel + Kiểu ảnh : RGB, số … ố- Chuyển đổi định dạng file ảnh - Để thay đổi định dạng đồ hoạ ảnh , sử dụng hàm imread để đọc ảnh sau lưu với hàm imwrite đồng thời định dạng tương ứng - Để minh hoạ , ví dụ sau sử dụng hàm imread để đọc file BMP vào không gian làm việc Sau , hàm imwrite lưu ảnh định dạng PNG bitmap = imread('mybitmap.bmp','bmp'); imwrite(bitmap,'mybitmap.png','png'); i - Đọc ghi ảnh DICOM - Toolbox xử lý ảnh bao gồm trợ giúp cho việc thao tác với ảnh số ( Digital Imaging ) ảnh y học (Communication in Medicine ) Đọc liệu ảnh từ file DICOM - Để đọc liệu ảnh từ file DICOM , sử dụng hàm đicomread Hàm đọc file tuân theo đặc trưng DICOM đọc file không theo chuẩn chung - Ví dụ sau đọc ảnh từ file DICOM mẫu kèm với toolbox I = dicomread('CT-MONO2-16-ankle.dcm'); Để xem liệu ảnh , sử dụng hàm hiển thị toolbox – imshow imview ( Do liệu ảnh số 16 bít có dấu , ta phải sử dụng cấu trúc tự chuyển đổi với hàm hiển thị ) imview(I,[]) Đọc Metadata từ file DICOM - Các file DICOM bao gồm thông tin gọi Metadata Những thông tin mơ tả tặc tính liệu ảnh nắm giữ : kích thước , chiều , chiều sâu bít Thêm vào , đặc trưng DICOM định nghĩa nhiều trường metadata khác để mô tả đặc tính khác liệu : cách thức sử dụng để tạo liệu , thiết lập thiết bị dùng để chụp ảnh , thông tin việc nghiên cứu …Hàm dicomread xử lý hầu hết tất trường metadata định nghĩa đặc trưng DICOM ( hay chuẩn DICOM ) - Để đọc metadata từ file DICOM , sử dụng hàm dicominfo Hàm trả cấu trúc metadata mà trường cấu trúc phần đặc trưng metadata file DICOM info = dicominfo('CT-MONO2-16-ankle.dcm'); info = Filename: [1x47 char] FileModDate: '24-Dec-2000 19:54:47' FileSize: 525436 Format: 'DICOM' FormatVersion: Width: 512 Height: 512 BitDepth: 16 ColorType: 'grayscale' SelectedFrames: [] FileStruct: [1x1 struct] StartOfPixelData: 1140 MetaElementGroupLength: 192 FileMetaInformationVersion: [2x1 double] MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.7' MediaStorageSOPInstanceUID: [1x50 char] TransferSyntaxUID: '1.2.840.10008.1.2' 10 Tạo phần tử cấu trúc SE = strel('rectangle',[40 30]); - Phần tử cấu trúc phải đủ lớn để loại bỏ đường trịn ta xói mịn ảnh nhiên khơng q lớn để khỏi loại bỏ hình chữ nhật Xói mịn ảnh với phần tử cấu trúc BW2 = imerode(BW1,SE); imshow(BW2) - Hai dòng mã loại bỏ tất đường cong nhiên làm co hình chữ nhật Để phục hồi hình chữ nhật với kích thước ban đầu , giãn nở ảnh vừa thu sử dụng phần tử cấu trúc BW3 = imdilate(BW2,SE); imshow(BW3 261 e- Các hàm dựa sở giãn nở xói mòn - Ta xem xét thao tác xử lý ảnh thông dụng dựa sở giãn nở xói mịn bao gồm : + Định khung cho ảnh ( Skeletonization ) + Xác định chu vi - Bảng sau liệt kê hàm khác toolbox thực thao tác biến đổi hình thái thông dụng dựa sở giãn nở xói mịn Hàm Chức Bwhitmisss Và ( AND ) lơ-gíc ảnh xói mịn với phần tử cấu trúc ảnh bù xói mịn với phần tử cấu trúc thứ hai Imbothat Trừ ảnh gốc từ phiên đóng hình thái ảnh Có thể sử dụng để tìm máng cường độ ảnh Imclose Giãn nở ảnh sau xói mịn sử dụng phần tử cấu trúc Imopen Xói mịn ảnh sau giãn nở sử dụng phần tử cấu trúc Imtophat Trừ ảnh mở cấu trúc từ ảnh gốc Có thể sử dụng để làm tăng độ tương phản ảnh Địng khung cho ảnh - Đó thuật ngữ việc biến đổi tất đối tượng ảnh thành đường ( khung ) mà không thay đổi cấu trúc ban đầu ảnh - sử dụng hàm bwmorph BW1 = imread('circbw.tif'); BW2 = bwmorph(BW1,'skel',Inf); 262 imshow(BW1) figure, imshow(BW2) Xác định đường chu vi - Đây thuật ngữ để việc thay tất đối tượng ảnh đường chu vi chúng Hàm bwperim tính pixel chu vi đối tượng ảnh Một pixel xem chu vi thoả hai điều kiện : + Giá trị pixel + Một nhiều pixel xung quanh có giá trị Chẳng hạn , đoạn mã sau tìm pixel chu vi ảnh nhi phân BW1 = imread('circbw.tif'); BW2 = bwperim(BW1); imshow(BW1) 263 figure, imshow(BW2) 3- Tái tạo hình thái ảnh - Tái tạo hình thái phần khác kĩ thuật xử lý hình thái ảnh Dựa giãn nở , tái tạo hình thái có tính chất : + Xử lý sở hai ảnh , ảnh ghi mặt nạ ảnh phần tử cấu trúc + Quá trình xử lý lặp lại ổn định + Quá trình xử lý dựa sở khái niệm tính kết nối ( connectivity ) dựa sở phần tử cấu trúc - Phần : + Cung cấp thông tin sở tái tạo hình thái mơ tả cách sử dụng hàm imreconstruct + Mô tả tính kết nối pixel ( pixel connectivity ) ảnh hưởng lên tái tạo hình thái + Mô tả cách sử dụng hàm imfill - dựa sở tái tạo hình thái + Mơ tả nhóm hàm khác dựa sở tái tạo hình thái a- Ảnh ghi mặt nạ ( Marker and Mask ) - Xử lý tái tạo hình thái ảnh , ảnh gọi ảnh ghi ( marker ) Quá trình xử lý dựa sở đặc tính ảnh khác , ảnh gọi mặt nạ ( 264 mask ) Điểm cao hay đỉnh ảnh ghi vị trí bắt đầu trình xử lý Quá trình xử lý tiếp tục giá trị ảnh ổn định - Để minh hoạ tái tạo hình thái , xem xét ví dụ sau Nó chứa hai vùng , khối pixel bao gồm giá trị 14 18 Nền chủ yếu thiết lập giá trị 10 với số pixel thiết lập giá trị 11 - Để tái tạo hình thái ảnh , thực bước sau : Tạo ảnh ghi Với phần tử cấu trúc giãn nở xói mịn , đặc tính ảnh ghi định q trình xử lý thực tái tạo ảnh Các đỉnh ảnh ghi phân biệt vị trí đối tượng ảnh mặt nạ mà ta muốn làm bật Một cách để tạo ảnh ghi trừ số từ ảnh mặt nạ sử dụng hàm số học ảnh imsubtract marker = imsubtract(A,2) marker = 8 8 8 8 8 12 12 12 8 9 8 12 12 12 8 8 265 12 12 12 8 9 8 8 8 8 8 16 16 16 8 8 16 16 16 8 8 8 16 16 16 8 9 8 8 8 8 8 8 8 8 8 Gọi hàm imreconstruct để tái tạo hình thái ảnh Trong ảnh , ý tất dao động cường độ ngoại trừ giá trị đỉnh bị loại bỏ recon = imreconstruct(marker, mask) Tái tạo hình thái ảnh ? 266 - Tái tạo hình thái xem trình giãn nở lặp lại ảnh ghi đường viền ảnh ghi vừa khít ảnh mặt nạ Theo cách , đỉnh ảnh ghi trải rộng hay giãn nở - Hình sau minh hoạ trình xử lý chiều Mỗi xự giãn nở liên tiếp ràng buộc để nằm mặt nạ Khi giãn nở tiếp sau khơng thay đổi ảnh , q trình xử lý chấm dứt Giãn nở cuối ảnh tái tạo b- Tính liên kết pixel - Quá trình xử lý hình thái bắt đầu đỉnh ảnh ghi trải rộng phần cịn lại ảnh sở tính liên kết pixel Tính liên kết định nghĩa pixel liên kết với pixel khác Chẳng hạn , ảnh nhị phân chứa đối tượng foreground - tất pixel có giá trị Nếu foreground kết nối , ảnh có đối tượng background tất pixel có giá trị Tuy nhiên , foreground kết nối , foreground tạo vịng đóng ảnh có hai đối tượng background riêng rẽ : pixel vòng pixel ngồi vịng 0 0 0 0 1 1 0 267 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 Định nghĩa tính kết nối ảnh -Sau ta liệt kê tất tính kết nối chiều chuẩn trợ giúp toolbox Các kết nối hai chiều + kết nối ( connected ) : Các pixel kết nối với pixel cạnh Điều có nghĩa gặp pixel liền phần đối tượng chúng có giá trị kết nối dọc theo chiều nằm ngang chiều thẳng đứng + kết nối ( connected ) : Các pixel kết nối cạnh góc chúng chạm Điều có nghĩa hai pixel liền có giá trị ( on ) , chúng phần đối tượng chúng có kết nối theo chiều ngang ,dọc hay chéo hay không Các kết nối chiều + kết nối : Các pixel kết nối mặt chúng tiếp xúc 268 + 18 kết nối : Các pixel kết nối mặt cạnh chúng tiếp xúc + 26 kết nối : Các pixel kết nối mặt , cạnh góc chúng chạm Chọn lựa kết nối - Kiểu vùng lân cận mà ta chọn ảnh hưởng đến số lượng đối tượng tìm thấy ảnh vùng biên chúng Vì lý , kết nhiều thao tác biến đổi hình thái thường khác phụ thuộc vào kiểu kết nối mà ta chọn - Chẳng hạn , ta chọn kiểu kết nối ảnh nhị phân chứa hai đối tượng , ta chọn kiểu kết nối , ảnh có đối tượng 0 0 0 1 0 0 1 0 0 0 1 0 0 1 Chỉ định kết nối tuỳ chọn - Ta định nghĩa vùng lân cận cách mảng 3x3x3…x3 giá trị ,1 Các phần tử có giá trị định nghĩa kết nối lân cận quan hệ với tâm phần tử Chẳng hạn , mảng sau định nghĩa kết nối “Bắc/Nam” có tác dụng ngắt ảnh nhiều cột độc lập CONN = [ 0; 0; ] 269 CONN = 0 0 c- Các thao tác tô lấp ( Flood Fill ) - Hàm imfill thực thao tác tô lấp ảnh nhị phân ảnh đen trắng Với ảnh nhị phân , hàm imfill thay đổi pixel kết nối ( có giá trị ) thành pixel foreground ( có giá trị ) Q trình thay đổi dừng lại chúng đạt đến biên đối tượng Với ảnh đen trắng , hàm imfill thay giá trị cường độ vùng đen ( bao quanh vùng trắng ) thành mức cường độ với pixel xung quanh Thao tác có ích loại bỏ artifact khơng thích hợp khỏi ảnh Chỉ định kiểu kết nối thao tác tô lấp - Với ảnh nhị phân ảnh đen trắng , biên thao tác tô lấp định kiểu kết nối mà ta định - Mối ảnh hưởng kiểu kết nối minh hoạ với ma trận sau : BW = [ 0 0 0 0 1 1 0; 0 0; 0 0; 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0; 0]; - Nếu kiểu kết nối , ảnh nhị phân chứa hai phần tử background riêng biệt ( phần vịng ngồi vịng ) Nếu kiểu kết nối , pixel kết nối chéo có phần tử background Chỉ định điểm bắt đầu - Với ảnh nhị phân , ta điểm bắt đầu thao tác tô lấp cách sử dụng hàm imfill theo kiểu tương tác , lựa chọn pixel khởi đầu với trỏ chuột Chẳng hạn , ta gọi hàm imfill , pixel BW(4,3) pixel khởi đầu , hàm imfill tơ bên vịng , theo mặc định kiểu kết nối ( connected ) 270 imfill(BW,[4 3]) ans = 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 - Nếu ta điểm bắt đầu sử dụng kiểu kết nối , hàm imfill tơ đầy tồn ảnh imfill(BW,[4 3],8) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Tô lấp lỗ hổng ảnh - Một thao tác tô lấp hay sử dụng tô lấp lỗ hổng ( holes )trong ảnh Chẳng hạn , giả sử ta có ảnh nhị phân đen trắng đối tượng foreground đại diện cho hình cầu Trong ảnh , đối tượng xuất đĩa Trước thực thao tác xử lý , ta muốn tô đầy lỗ hổng ( xem ảnh ) sử dụng hàm imfill 271 -Do thao tác tô lấp sử dụng thường xuyên để tô lấp lỗ , hàm imfill bao gồm cú pháp đặc biệt để trợ giúp tác thao tác ảnh nhị phân ảnh đen trắng Trong cú pháp , ta cần tham số “ holes “ , ta khơng phải vị trí bắt đầu lỗ hổng Để minh hoạ , ví dụ sau tô lấp lỗ ảnh đen trắng : [X,map] = imread('spine.tif'); I = ind2gray(X,map); Ifill = imfill(I,'holes'); imshow(I);figure, imshow(Ifill) d- Tìm đỉnh đáy ( Peak and Valley ) - Các ảnh đen trắng xem khơng gian chiều : trục x, y đại diện cho vị trí pixel trục z đại điện cho cường độ pixel Theo cách hiểu , giá trị cường độ đại diện cho độ cao giống đồ đo đạc địa hình Những vùng có cường độ cao thấp - ảnh tương ứng với đỉnh đáy 272 ( thung lũng ) , đặc điểm hình thái quan trọng chúng thường đánh dấu đối tượng ảnh thích hợp - Chẳng hạn , ảnh với vài đối tượng có dạng hình cầu , điểm có cường độ cao đại diện cho đỉnh đối tượng Sử dụng phép xử lý hình thái , giá trị đỉnh sử dụng để phân biệt đối tượng ảnh Các hàm cực đại cực tiểu - Một ảnh có nhiều vùng lớn nhỏ vùng cực đại cực tiểu Việc tính tốn đỉnh đáy ảnh sử dụng để tạo ảnh ghi ( marker images ) - sử dụng tái tạo hình thái - Hình sau minh hoạ khái niệm chiều : Tìm vùng có cường độ cao thấp ảnh - Toolbox cung cấp hàm mà ta sử dụng để tìm vùng có cường độ cao thấp ảnh : + Hàm imregionalmax imregionalmin phân biệt tất cực tiểu cực đại vùng + Hàm imextendedmax imextendedmin phân biệt tất cực tiểu cực đại vùng mà lớn nhỏ ngưỡng xác định - Những hàm chấp nhận ảnh đen trắng tham số trả ảnh nhị phân làm ảnh Trong ảnh , cực tiểu cực đại vùng thiết lập tới , tất pixel khác thiết lập giá trị Chẳng hạn , ảnh đơn giản sau chứa hai 273 cực đại vùng , khối pixel chứa giá trị 13 18 vài cực đại nhỏ thiết lập giá trị 11 - Ảnh nhị phân trả từ hàm imregionalmax xác định tất cực đại vùng - Có thể ta muốn phân biệt vùng ảnh mà thay đổi cường độ lớn - chênh lệch pixel pixel lân cận chúng ớn giá trị ngưỡng Chẳng hạn , để tìm cực đại vùng ảnh mẫu A mà lớn hai đơn vị so với lân cận chúng , sử dụng hàm imextendedmax B = imextendedmax(A,2) 274 275

Ngày đăng: 27/08/2012, 09:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan