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

Lược đồ histogram - ứng dụng hiệu chỉnh ảnh trong xử lý ảnh

30 4,8K 101
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lược đồ histogram - ứng dụng hiệu chỉnh ảnh trong xử lý ảnh
Tác giả Nguyễn Văn Lý, Nguyễn Ngọc Giáp, Nguyễn Văn Tú, Nguyễn Văn Trung
Người hướng dẫn Cao Ngọc Ánh
Trường học Đại học Tin học TP.HCM
Chuyên ngành Xử lý ảnh
Thể loại Bài Thảo Luận
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 30
Dung lượng 3,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Histogram hay lược đồ mức xám là đồ thị thể hiện mối quan hệ giữa mức xám và các điểm ảnh có chung mức xám, thể hiện tần suất xuất hiện mỗi mức xám trong ảnh.

Trang 1

Bài Thảo Luận

Môn: Xử lý ảnh

Đề tài: Lược đồ histogram Ứng dụng hiệu chỉnh ảnh

GVHD: Cao Ngọc Ánh Lớp: ĐH Tin4a1

Trang 3

1.2 một số ví dụ

- Histogram tốt có hình ngọn núi với độ cao tăng dần từ trái, cao

nhất ở giữa và thấp nhất ở bên phải Điều đó chứng tỏ số lượng điểm ảnh nhiều nhất là ở độ sáng trung bình

Trang 4

- Ảnh bị quá tối: histogram bị nghiêng về bên trái, có một cái cột gần như thẳng đứng sát trái

- Ảnh bị quá sáng: histogram bị nghiêng về bên phải, có một cái cột gần như thẳng đứng sát phải

Trang 5

- Ảnh bị quá tương phản: có hai cái cột nằm ở 2 đầu trái phải

- Ảnh bị kém tương phản: dải màu bị dồn vào giữa, hai đầu không có gì

Trang 6

2 Các phép biến đổi trên lược đồ xám và ứng dụng.

2.1 Hiển thị lược đồ xám của ảnh

Theo định nghĩa của lược đồ xám, thuật toán xây dựng lược đồ xám có thể mô tả như sau:Giải thuật:

Bắt đầu

H là bảng chứa lược đồ xám (là vec tơ có N phần tử)

Bước 1: Khởi tạo bảng

Đặt tất cả các phần tử của bảng là 0 Bước 2: Tạo bảng

Với mỗi điểm ảnh I(x,y) tính H[I(x,y)] = H[I(x,y)] + 1

Bước 3: Tính giá trị Max của bảng H Sau đó hiện bảng trong khoảng từ 0 đến Max.Kết thúc

Trang 8

- Ví dụ về hiển thị Lược đồ xám của ảnh.

Lược đồ xám là một công cụ hữu hiệu dùng trong nhiều công đoạn của xử lý ảnh như tăng cường ảnh

Trang 9

2.2 Các phép biến đổi trên histogram.

- Tổ chức đồ là một đặt trưng quan trọng của ảnh, dựa vào lược đồ chúng ta có thể nhận dạng sơ về ảnh, có kết luận cơ bản về ảnh: ảnh sáng, tối, độ tương phản thấp, cao… Với lý do đó, chúng ta có một số phép xử lý cơ bản sau:

+ Trượt histogram

+ Căng biểu đồ

+ Sửa chữa tổ chức đồ (kết hợp giữa căng và trượt)

+ Cân bằng (san bằng) biểu đồ

- Sau đây chúng ta sẽ đi vào các hiệu chỉnh ảnh với các phép xử lý trên histogram

Trang 10

2.2.1 Trượt histogram.

- Mục đích: Mục đích: làm tăng hoặc giảm cường độ xám của ảnh

- Ý tưởng:

O(x,y) = I(x,y) + n

+ n < 0 : trượt ảnh về bên trái => ảnh tối hơn

+ n > 0 : trượt ảnh về bên phải => ảnh sáng hơn

Chú ý: Kết quả của O(x,y) có thể > 255 hoặc < 0 vì vậy cần chú ý để set lại 2 giá trị này

Trang 11

for (y = 0; y < bitmap.Height - 1; y++)

Trang 12

- Sau đây là hình ảnh so sánh giữa trước và sau khi trượt với các hệ số 80 và -30

Histogram tương

ứng

Trang 13

ảnh trước khi trượt

ảnh sau khi trượt với hệ số -30

Histogram tương

ứng

Trang 14

2.2.2 Phép căng tổ chức đồ.

Mục đích: làm thay đổi độ tương phản của ảnh

Ý tưởng: Thông thường trong một số ảnh,các giá trị xám không phủ đều toàn bộ dải xám sẵn có mà chỉ tập chung vào một khoảng nhất định,điều này làm ảnh bị sáng quá, tối quá, hoặc độ tương phản kém.Vì vậy giải pháp được đưa ra là kéo dãn dải xám ra mức lớn nhất có thể

O(x,y) = I(x,y) * n (với n > 0)

+ n > 1 : mở rộng chân tổ chức đồ

=> tăng độ tương phản của ảnh

Trang 15

c = bitmap.GetPixel(x, y);

Trang 17

So sánh giữa trước và sau khi co dãn

Histogram tương

ứng

Trang 18

2.2.3 Sửa chữa tổ chức đồ.

Mục đích: nhằm có một tổ chức đồ tối ưu

=> nâng cao chất lượng ảnh

Ý tưởng:

+ Kết hợp giữa trượt và căng tổ chức đồ

+ Trượt tổ chức đồ về bên trái sao cho mức xám nhỏ nhất.+ Căng tổ chức đồ sao cho mức xám lớn nhất (có giá trị).O(x,y) = I(x,y) * 255 / max(h())

Trang 19

} return 0;

} private Byte HistogramRight(int [] h) {

for(int i = h.Length - 1;i>0;i ) {

if (h[i]!=0) return (byte)i;

} return 0;

} return 0;

} private Byte HistogramRight(int [] h) {

for(int i = h.Length - 1;i>0;i ) {

if (h[i]!=0) return (byte)i;

} return 0;

}

Trang 20

private Bitmap Suachua_Histogram(Bitmap bm)

{

Bitmap bitmap = new Bitmap(bm);

//Tinh h(x)

int[]hL = new int[256];

int[]hR = new int[256];

GetH(bitmap, hL);

//Tim Trai & truot trai

int left = HistogramLeft(hL);

bitmap = new Bitmap(Truot_HisToGram(bm,

left));

//Tinh tien ve 0 va copy hL qua hR

Array.Copy(hL, left, hR, 0, hL.Length - left);

private Bitmap Suachua_Histogram(Bitmap bm)

{

Bitmap bitmap = new Bitmap(bm);

//Tinh h(x)

int[]hL = new int[256];

int[]hR = new int[256];

GetH(bitmap, hL);

//Tim Trai & truot trai

int left = HistogramLeft(hL);

bitmap = new Bitmap(Truot_HisToGram(bm,

left));

//Tinh tien ve 0 va copy hL qua hR

Array.Copy(hL, left, hR, 0, hL.Length - left);

int x, y;

Byte c;

Byte max = HistogramRight(hR);

for (y = 0; y < bitmap.Height - 1; y++) {

for (x = 0; x < bitmap.Width - 1; x++) {

c = bitmap.GetPixel(x, y).R;

c = (byte)((c * 255)/max);

bitmap.SetPixel(x, y, Color.FromArgb(c, c, c));

} } return bitmap;

}

int x, y;

Byte c;

Byte max = HistogramRight(hR);

for (y = 0; y < bitmap.Height - 1; y++) {

for (x = 0; x < bitmap.Width - 1; x++) {

c = bitmap.GetPixel(x, y).R;

c = (byte)((c * 255)/max);

bitmap.SetPixel(x, y, Color.FromArgb(c, c, c));

} } return bitmap;

}

Trang 21

- Sau đây là hình ảnh so sánh giữa trước và sau khi sửa chữa với ảnh xám trượt -30 trước đó.

Histogram tương

ứng

Trang 22

2.2.4 Cân bằng lược đồ.

Mục đích: Với một ảnh tự nhiên, phần lớn các điểm ảnh có giá trị thấp hơn độ sáng trung bình Trong miền tối ta khó có thể cảm nhận được các chi tiết của ảnh Cho nên ta cần khắc phục nhược điểm này bằng cách biến đổi lược đồ xám Thường biến đổi sao cho tiến gần đến lược đồ định trước, có thể nói phổ biến nhất là san bằng lược đồ

Thuật toán cân bằng:

Với ảnh đầu vào I(m*n):

Bước 1: tính tổ chức đồ của ảnh

Bước 2: tính tỷ lệ xuất hiện của mức xám h[i] trên ảnh (h[i]/(m*n))

Bước 3: tính mật độ xác suất của các mức xám h[i]

( hc[i] = h[0] +…+ h[i] = hc[i-1] + h[i])

Trang 23

Bước 4: San bằng mức xám và gắn các mức xám mới cho điểm ảnh đầu ra: (Eq[i] = round(255*hc[i])).

// Mat do xac suat

int[] tg = new int[256];

// Mat do xac suat

int[] tg = new int[256];

Trang 24

float tb = (float)bm.Width * bm.Height;

// tinh f(g) max (0,round( t(g)*255/( tb-1) )

int[] fg = new int[256];

for (int i = 0; i < 256; i++)

Color c = bm.GetPixel(x, y);

int red = (int)c.R;

float tb = (float)bm.Width * bm.Height;

// tinh f(g) max (0,round( t(g)*255/( tb-1) )

int[] fg = new int[256];

for (int i = 0; i < 256; i++)

Color c = bm.GetPixel(x, y);

int red = (int)c.R;

Trang 26

hc(1) = 4/25 hc(5) = 12/25 hc(13) = 24/25hc(2) = 7/25 hc(6) = 16/25 hc(14) = 25/25hc(3) = 8/25 hc(7) = 22/25

Trang 27

- Sau đây là hình ảnh so sánh giữa trước và sau khi cân bằng

Histogram tương

ứng

Trang 28

2 Một số hình ảnh của chương trình.

Ngày đăng: 13/06/2014, 06:25

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w