1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu các phương pháp xử lý điểm ảnh như thay đổi độ tương phản ,tạo ảnh âm bản và phân ngưỡng ảnh thử nghiệm trên ảnh màu 24 bít

11 1,6K 11

Đ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 11
Dung lượng 761,52 KB

Nội dung

Ai mún có thêm code thì gửi mail cho mình nhé: ledinhchung.mta@gmail.com

Trang 1

Mục lục

I Phát biểu bài toán 2

II Hướng giải quyết 3

III Thuật toán 3

1 Thay đổi độ tương phản(Contrast stretching) 3

2 Tạo ảnh âm bản 4

3 Phân ngưỡng ảnh 5

IV Kỹ thuật cài đặt 5

V Kết quả 10

Trang 2

I Phát biểu bài toán

Hiện nay phần lớn lượng thông tin con người thu vào là dưới dạng hình ảnh.Thông tin dưới dạng hình ảnh là thông tin trực quan nên con người dễ dàng tiếp nhận nó.Với sự ra đời của nhiều máy móc kỹ thuật hiện đại như máy ảnh số,máy quay số,các máy thu hình,máy vi tính … thì lượng thông tin con người thu được càng nhiều.Con người không chỉ muốn tiếp thu thông tin một cách thụ động mà phải biết xử lý nó,làm cho nó hữu ích hơn.Do đó con người đã tiến hành nghiên cứu các phương pháp xử lý trên thông tin trực quan này để chúng

ta có thể tiếp nhận tối đa lượng thông tin trực quan này Việc xử lý ảnh số đã ra đời với nhiều hướng phát triển khác nhau như nén ảnh,nhận dạng,giấu tin … Trong xử lý ảnh ,sau quá trình thu nhận ảnh là quá trình phân tích ảnh,mà thực chất bao gồm nhiều công đoạn nhỏ như : Tăng cường ảnh,phát hiện các đặc tính như biên,phân vùng ảnh … Do những nguyên nhân như chất lượng máy thu nhận ảnh ,do nguồn sáng hay nhiễu,ảnh có thể bị suy yếu đi các đặc trưng mà ta quan tâm.Do vậy cần tăng cường và khôi phục ảnh để làm nổi bật các đặc trưng của ảnh mà ta quan tâm.Tăng cường ảnh bao gồm nhiều phương pháp và xử lý điểm ảnh là một trong những cách được khá nhiều người sử dụng.Với các phương pháp như thay đổi độ tương phản,tạo ảnh âm bản,phân ngưỡng …đã tạo ra hiệu quả có giá trị trong thực tế

Với đề bài “ Tìm hiểu các phương pháp xử lý điểm ảnh như thay đổi độ tương phản ,tạo ảnh âm bản và phân ngưỡng ảnh.Thử nghiệm trên ảnh màu 24 bít.” Em đã tập trung làm rõ và cài đặt các phương pháp trên đối với

ảnh màu 24 bít

Trong quá trình làm bài tập không thể tránh được những sai sốt.Em rất mong thầy xem xét và góp ý để cho em có nhiều kinh nghiệm hơn trong môn xử lý ảnh

Trang 3

Em xin chân thành cảm ơn!

II Hướng giải quyết

Phép biến đổi u(x,y) = f(v(x,y)), trong đó:

v(x,y): mức xám điểm ảnh x,y trên ảnh gốc u(x,y): mức xám điểm ảnh x,y trên ảnh kết quả

f : được gọi là toán tử điểm

Kỹ thuật biến đổi dùng toán tử điểm tương đối đơn giản nhưng đem lại hiệu quả khá cao (trong một số ứng dụng)

Ảnh có thể được biểu diễn dưới dạng tín hiệu tương tự hoặc tín hiệu số Trong phạm vi bài tập em chỉ đề cập tới ảnh số 24bit Trong biểu diễn ảnh số của ảnh đa mức xám, một ảnh được biểu diễn dưới dạng một ma trận hai chiều Mỗi phần tử của ma trận biểu diễn cho một mức xám hay cường độ của ảnh tại

vị trí đó và được gọi là điểm ảnh(pixel)

Khác với ảnh 8 bit, trong ma trận của ảnh 24 bit, mỗi phần tử biểu diễn cho

3 màu riêng rẽ: red, green, blue Tại mỗi điểm ảnh cần 24 bit và 24 bit này được chia thành 3 khoảng 8 bit Mỗi khoảng này biểu diễn cho cường độ sáng của một trong các màu chính Đối với ảnh đa mức xám, 3 byte này có cùng một giá trị.Do đó hướng giải quyết đối với ảnh màu 24bit là thực hiện theo từng thành phần màu riêng rẽ R,G,B sau đó tổng hợp lại

Trang 4

III Thuật toán

1 Thay đổi độ tương phản(Contrast stretching)

Độ tương phản thể hiện sự thay đổi cường độ sáng của đối tượng so với nền,hay nói cách khác độ tương phản chính là độ nổi của điểm ảnh hay vùng ảnh so với nền

Thực tế chỉ ra rằng, 2 đối tượng có cùng độ sáng nhưng đặt trên 2 nền khác nhau thì cho cảm nhận khác nhau

Ảnh có độ tương phản thấp có thể do điều kiện sáng không đủ hay không đều, hoặc do tính không tuyến tính hay biến động nhỏ của bộ phận nhận ảnh

Để điều chỉnh độ tương phản của ảnh, ta có thể điều chỉnh lại biên độ của ảnh trên toàn dải hay trên dải có giới hạn bằng cách biến đổi biên độ đầu vào

Có thể sử dụng phép biến đổi tuyến tính hay phi tuyến (hàm biến đổi là hàm tuyến tính hay hàm mũ, hàm logarit)

Công thức :

g(x, y)= ¿ { L min , f(x, y)< a low , ¿ { ( L max − L min ) . f(x, y)− a a low

higha low + L min , a lowf(x,y)≤a high , ¿¿¿

Với những ảnh mà các mức xám chênh lệch nhau không nhiều (độ tương phản thấp) thì ta cần dãn ra để thấy rõ sự khác biệt Trong phương pháp này ta

sẽ làm tối những vùng có mức xám nhỏ hơn alow, sáng hẳn vùng có mức xám

Trang 5

lớn hơn amax, khi đó ta sẽ trải được khoảng mức xám [ alow, ahigh ] trên toàn dải [Lmin, Lmax]

2 Tạo ảnh âm bản

Công thức:

g(x,y) = L max - f(x,y)

Với: Lmin £ f(x,y) £ Lmax

3 Phân ngưỡng ảnh

Công thức:

Ảnh đầu ra chỉ có 2 mức: thấp và cao

Ngưỡng θ trong kỹ thuật tách ngưỡng thường được cho bởi người sử

dụng Kỹ thuật tách ngưỡng tự động nhằm tìm ra ngưỡng θ một cách tự động dựa vào histogram theo nguyên lý trong vật lý là vật thể tách làm 2 phần nếu tổng độ lệnh trong từng phần là tối thiểu

Giả sử, ta có ảnh I ~ kích thước m × n

G ~ là số mức xám lớn nhất của ảnh t(g) ~ số điểm ảnh có mức xám ≤ g h(g) ~ số điểm ảnh có mức xám =g

¿

¿

m(g) = ∑

i=0

g

i∗hi

/ t(g) ~ mômen quán tính TB có mức xám ≤ g

IV Kỹ thuật cài đặt

Tạo một lớp thuật toán chứa tất cả các thuật toán trong bài

Trang 6

class Algorithm

{

/// <summary>

///Thay doi do tuong phan

/// </summary>

anh</param>

can thay doi do tuong phan </param>

anh can thay doi do tuong phan</param>

/// <param name="L_min">can duoi can dat duoc</

param>

/// <param name="L_max">can tren can dat duoc</

param>

/// <returns></returns>

value_pixel,int a_low,int a_high,int L_min,int

L_max)

{

int temp_pixel;

if (value_pixel <= a_low)

{

temp_pixel = L_min;

}

else if (a_high <= value_pixel)

{

temp_pixel = L_max;

}

else

{

Trang 7

temp_pixel = Convert.ToInt32((L_max -

L_min) *(value_pixel - a_low) / (a_high

- a_low) + L_min);

}

return temp_pixel;

}

/// <summary>

/// Tao anh am ban

/// </summary>

anh</param>

/// <returns></returns>

public static int Negative(int value_pixel,int

L_max) {

return (L_max - value_pixel);

}

/// <summary>

/// Phan nguong anh

/// </summary>

anh</param>

/// <param name="Threshold">Nguong dung de

/// <returns></returns>

public static int Img_Threshold(int

value_pixel,int Threshold) {

if (value_pixel<Threshold)

{

return 0;

}

else

{

return 255;

Trang 8

}

}

/// <summary>

/// Phuong pháp tự động tìm ngưỡng thích hợp

/// </summary>

/// <param name="bmp">mảng điểm ảnh</param>

/// <param name="w">chiều dài</param>

/// <param name="h">chiều cao</param>

/// <returns>giá trị ngưỡng</returns>

amax, int amin, int w, int h)

{

int[] hg = new int[256];

int[] tg = new int[256];

double[] mg = new double[256];

double[] fg = new double[256];

for (int g = amin; g <= amax; g++)

{

hg[g] = 0;

}

//Tim a_max,a_min cho tung thanh phan mau RGB

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

for (int j = 0; j < h; j++)

{

for (int g = amin; g <= amax; g++) {

if (bmp[i, j] == g)

Trang 9

{

hg[g]++;

tg[g]++;

}

if (bmp[i, j] < g)

{

//so diem anh co muc xam < g

tg[g]++;

}

}

}

//tinh momen quan tinh trung binh co muc xam nho hon g

for (int g = amin; g <= amax; g++)

{

int temp = 0;

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

{

temp += i * hg[i];

}

mg[g] = Math.Round(temp / (float)tg[g], 3); }

//tinh ham nguong

for (int g = amin; g < amax; g++)

{

fg[g] = Math.Round((tg[g] / (float)(w * h

- tg[g])) * ((mg[g] - mg[amax]) * (mg[g] - mg[amax])), 3);

}

int g1 = 0;

//Tim fg max

double fgmax = 0;

for (int g = amin; g < amax; g++)

{

if (fg[g] > fgmax)

{

fgmax = fg[g];

g1 = g;

Trang 10

}

}

return g1;

}

}

V Kết quả

Tăng độ tương phản:

Âm bản :

Trang 11

Phân ngưỡng :

Ngày đăng: 29/03/2014, 08:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w