XỬ LÝ ẢNH SỐ - Tân

Preview:

DESCRIPTION

XỬ LÝ ẢNH SỐ - Tân

Citation preview

XỬ LÝ ẢNH SỐ

• Là một môn khoa học còn mới mẻ, bao gồm các vấn đề cơ bản:–Hệ Thống xử lý ảnh–Các vấn đề cơ bản trong xử lý ảnh

Hệ Thống Xử Lý Ảnh

• Thu Nhận Ảnh• Phân Tích Ảnh• Xử Lý Ảnh• Lưu Trữ Ảnh

Thu Nhận Ảnh

• Thu Nhận qua Camera dưới dạng các tín hiệu tương tự hoặc số hóa.

• Thu nhận từ vệ tính qua các sensor, ảnh, trang được scan

• Gồm các bước: – Số hóa (digitalizer)– Lấy mẫu– Số hóa bằng lượng hóa

Thu Nhận Ảnh

• Biểu diễn màu, gồm 3 thuộc tính chủ yếu trong cảm nhận màu:– Độ chói (Brightness)– Sắc thái màu (Hue)– Độ bão hòa (Saturation)

Thu Nhận Ảnh

• Tổng hợp màu và sánh màu: theo lý thuyết 3 màu của Thomas các màu được tổng hợp từ 3 màu cơ bản: đỏ, lục, lơ.

• Có thể tổng hợp màu bằng : – Màu X = x1 đỏ + x2 xanh + x3 lơ

x1 , x2 , x3 là các hệ số tổng hợp

Thu Nhận Ảnh

• Các phương pháp biểu diễn ảnh:– Mã loạt dài– Mã xích– Mã tứ phân

Thu Nhận Ảnh

• Các định dạng ảnh cơ bản trong xử lí ảnh– Ảnh IMG– Ảnh PCX– Ảnh TIFF– Ảnh GIF

Ảnh IMG

• Là ảnh đen trắng.• Header gồm 16 bytes:– 6 bytes đầu đánh dấu định dạng IMG:

0x0001 0x0008 0x0001– 2 bytes tiếp theo chứa độ dài mẫu tin– 4 bytes mô tả kích cỡ pixel– 2 bytes số pixel trên một dòng ảnh– 2 bytes số dòng ảnh trong ảnh

Ảnh IMG

• Ảnh được nén thành từng dòng, mỗi dòng gồm các gói, các dòng giống nhau cũng được nén thành một gói, gồm 4 loại gói:– Gói các dòng giống nhau– Gói các dãy giống nhau– Dãy các pixel không giống nhau, không lặp

lại và không nén được – Dãy các pixel giống nhau

Ảnh PCX

• Sử dụng phương pháp mã loạt dài RLE (Run Length Encoded).

• File PCX gồm 3 phần: header, image data, bảng màu mở rộng

Ảnh PCX• Header: gồm 128 bytes

– 1 byte: kiểu định dạng – 1 byte: Version sử dụng nén ảnh– 1 byte: phương pháp mã hóa– 1 byte: số bit cho một điểm ảnh plane– 1 word: tọa độ góc trái trên– 1 word: tọa độ góc phải dưới – 1 word: kích thước bề rộng và bề cao ảnh– 1 word: số điểm ảnh– 1 word: độ phân giải màn hình– 48 bytes: chia 16 nhóm mỗi nhóm chưa thông tin thanh ghi

màu– 1 byte: giá trị luôn là 0– 1 byte: số bit plane ảnh sử dụng– 1 byte: số bytes cho một dòng quét ảnh– 1 word: kiểu bảng màu– 58 byte: không dùng

Ảnh TIFF

• Gồm 3 phần chính: Header (IFH), IFD, DE (bảng màu mở rộng)

• IFH (Image File Header):– 1 word: kiểu tạo tệp trên máy tính PC hay

Macintosh. ( 4D4DH – Macintosh, 4949H – PC)

– 1 word: version (giá trị là 42) – 2 word: giá trị Offset theo byte từ đầu file

đến IFD

Ảnh TIFF

• IFD (Image File Directory): có thể có 1 hay nhiều IFD cùng tồn tại trong file– 2 bytes: chứa các DE (Directory Entry).– 12 bytes: các DE xếp liên tiếp– 4 bytes: Offset tới IFD tiếp theo

Ảnh TIFF

• DE – Directory Entry (bảng màu mở rộng) : gồm 12 byte, chia làm 4 phần:– 2 byte: dấu hiệu mà file được xây dựng– 2 byte: kiểu dữ liệu tham số ảnh

• BYTE (1 byte)• ASCII (1 byte)• SHORT (2 byte)• LONG (4 byte)• RATIONAL (8 byte)

– 4 byte: số lượng index của kiểu dữ liệu– 4 byte: ogffset tới điểm bắt đầu dữ liệu liên quan tới

DE

Ảnh GIF

• Sử dụng thuật toán nén LZW (Lempel-Ziv-Welch) dựa vào sự lặp lại của nhóm điểm, tăng ưu thế khi số màu tăng lên so với các kiểu ảnh khác.

• Định dạng:– GIF Note– GIF Header – Global Palette– Header Image– Palette of Image 1– Data of Image 1– ‘,’ ký tự liên kết– …………………….– ‘;’ GIF terminator

Ảnh GIF

• GIF note: có giá trị GIF87a, 3 kí tự đầu: kiểu định dạng, 3 kí tự sau: version

• GIF Header: mô tả thông số toàn bộ ảnh– Độ rộng hình rasier theo pixel 2 byte– Độ cao hình rasier theo pixel 2 byte– Các thông tin về bản đồ màu, hình hiển thị,…– Thông tin màu nèn 1 byte– Phần chưa dùng 1 byte

Ảnh GIF

• Global Palette:Bit Thứ tự byte Mô tả

Red 1 Giá trị màu đỏ theo index 0

Green 2 Giá trị màu xanh lục theo index 0

Blue 3 Giá trị màu xanh lơ theo index 0

Red 4 Giá trị màu đỏ theo index 1

Green 5 Giá trị màu xanh lục theo index 1

Blue 6 Giá trị màu xanh lơ theo index 1

………….. ………………… …………………………………………………...

Ảnh GIF

• Header of Image:Các Bit Thứ tự byte Mô tả

00101100 1 Kí tự liên kết ảnh (*)

Căn trái ảnh 2,3 Pixel bắt đầu ảnh tính từ trái hình hiển thị

Căn đỉnh trên 4,5 Pixel cuối ảnh bắt đầu tính từ đỉn trên hình hiển thị

Độ rộng ảnh 6,7 Chiều rộng ảnh tính theo PixelĐộ cao ảnh 8,9 Chiều cao ảnh tính theo PixelMI000pixel 10 Khi bit M = 0: sử dụng bản đồ màu tổng thể

M = 1: sử dụng bản đồ màu cục bộ I = 1: định dạng ảnh theo thứ tự liên tục I = 1: định dạng ảnh theo thứ tự xen kẽ pixel + 1: số bit/pixel của ảnh này

Ảnh GIF

• Palette of Image 1• Data of Image 1: chuỗi các giá trị có thứ tự của

các pixel màu tạo nên ảnh• GIF terminator: cung cấp tính đồng bộ cho đầu

cuối của ảnh GIF

Tích chập

• Khái niệm bất biến trượt: một hệ thống gọi là bất biến trượt nếu dịch chuyển đầu vào thì cũng tạo nên một dịch chuyển tương ứng của đầu ra.

• Tích chập có tính chất liên quan đến biến đổi Fourier: biến đổi Fourier của một tích chập bằng tích đơn giản các biến đổi Fourier của các tín hiệu đó.– F[H(x,y) X I(x,y)] = F[H(x,y)] . F[I(x,y)]

• Trong kỹ thuật người ta gọi H là nhân chập, nhân cuộn hay mặt nạ

Tích chập• Hàm tính nhân chập với thuật toán dùng trong moi trường hợp cần tính

tích chập, viết bằng C: void Nhanchap(){

int sum=0;int Lc=(w+1)/2;int col;int row; for(int i=1;i<=N;i++)for(int j=1;j<=N;j++){

sum=0; for(int k=1;k<=w;k++)for(int l=1;l<=w;l++){col=i-k+Lc;row=j-l+Lc;if(col!=0 && col<=N)if(row!=0 && row<=N)sum+=imageIn[col][row]*H[k][l];}

imageOut[i][j]=sum;

}

}

Xử Lý và Nâng Cao Chất Lượng Ảnh

• Các kỹ thuật tăng cường ảnh• Khôi phục ảnh

Các kỹ thuật tăng cường ảnh

• Điều khiển mức xám• Giãn độ tương phả• Giảm nhiễu• Làm trơn ảnh• Nội suy • Phóng đâij• Nổi biên• ……………………

Lọc

• Làm trơn nhiễu bằng lọc tuyến tính, lọc trung bình và lọc dải thông thấp.

• Tùy loại nhiễu mà ta áp dụng bộ lọc thích hợp• Lọc trung bình có trọng số chính là thực hiện chập

ảnh đầu vào với nhân chập H: 1 1 1 H = ⅟9 1 1 1

1 1 1

Lọc

• Lọc thông thấp: 1 b 1 H = 1/(b + 2)2 b b2 b 1 b 1Lọc đồng hình (Homomorphic filter):

…………………………………………..

Ứng dụng cơ bản một số hàm Javatrong việc xử lí ảnh

• Sử dụng class BufferedImage trong java, class cung cấp việc quản lí ảnh trong bộ nhớ, các phương thức lưu trữ, xử lí, và nhận pixel.

• Một bufferedImage có một ColorModel và một Raster dữ liệu ảnh. – ColorModel biểu thị màu biểu diễn của các pixel– Raster thực thi các chức năng:

• Thể hiện ảnh • Bảo trì ảnh trong bộ nhớ• Hỗ trợ tạo nhiều ảnh con từ một bộ đệm dữ liệu ảnh đơn• Cung cấp các phương thức truy cập các pixel ảnh

Đọc ảnh

• Để load một ảnh từ file ảnh ta sử dụng code: BufferedImage img = null; try {

img = ImageIO.read(new File(“imageSource")); } catch (IOException e) { }

imageSource là đường dẫn đến file ảnh cần đọc Khi đó class BufferedImage sẽ nhận định dạng ảnh nhờ phần mở rộng

hoặc các thông số đặc trưng của ảnh và tiến hành giải nén theo định dạng ảnh.

Xử lí ảnh cơ bản

• Sử dụng các option của BufferedImage class:– LookupOp:– ConvolveOp: sử dụng convolution kernel làm

không gian tính toán output pixel bằng cách nhân input pixel với kernel, kernel là các ma trận.

– RescalesOp: thực hiện thay đổi tỉ lệ trên từng pixel ảnh nguồn bằng cách nhân pixel với giá trị mẫu bởi một nhân tố tỉ lệ rồi cộng với offset.

– …………………………….

Recommended