Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Đề thi Xử Lý Ảnh doc
PREMIUM
Số trang
68
Kích thước
2.1 MB
Định dạng
PDF
Lượt xem
1591

Đề thi Xử Lý Ảnh doc

Nội dung xem thử

Mô tả chi tiết

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

1

Đề thi Xử Lý Ảnh

GV: Trần Tiến Đức

MỤC LỤC

ĐỀ THI VÀ ĐÁP ÁN MÔN XỬ LÝ ẢNH SỐ

Chương 3 gồm 13 câu từ câu 1 đến câu 13

Câu 1. Xây dựng và cài đặt thuật toán làm âm ảnh.

Đáp án:

Cách làm âm ảnh được cho bằng phương trình: s=L-1-r trong đó L=256 là số lượng mức xám, r

là mức xám đầu vào, s là mức xám đầu ra

Quan sát đồ thị ta thấy: Mức xám đầu ra “ngược” với đầu vào, tức là thuật toán này biến ảnh

đen trở thành ảnh trắng và trắng thành đen.

Code:

void Negatives(BYTE **f, BYTE **g)

{

int x, y;

BYTE r,s;

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

S

R

(0,0)

L-1

L-1

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

2

s = L-1-r;

g[x][y] = s;

}

return;

}

Câu 2. Xây dựng và cài đặt thuật toán biến đổi logarit ảnh.

Đáp án:

Phương trình biến đổi:

s=c log(1+r)

trong đó:

 r là mức xám đầu vào

 s là mức xám đầu ra

 c: hằng số dương

 log(1+r): tránh trường hợp log = 0.

Quan sát đồ thị thấy đường log làm cho ảnh

trở nên sáng hơn.

Hằng số c được tính như sau:

Ta có phương trình: s=c log(1+r)

Rõ ràng r=0 thì s=0

Ta cần có: r=L-1 thì s=L-1

 c=

log(1 1)

1

 

L

L

 Với L = 256 thì c= 45.9859

Code:

void Logarithm(BYTE **f, BYTE **g)

{

int x, y;

double r,s;

double c = (L-1)/log(1.0*L);

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

s = c*log(1+r);

g[x][y] = (int)s;

}

return;

}

Intensity

log

L-1

(0,0) L-1

Negative

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

3

Câu 3. Xây dựng và cài đặt thuật toán biến đổi lũy thừa ảnh.

Đáp án:

Biến đổi lũy thừa được cho bằng phương trình:

s=cr

γ

với r là mức xám đầu vào, s là mức xám đầu ra,

c, γ là các hằng số dương.

 γ<1: làm cho ảnh sáng hơn

 γ>1: làm cho ảnh tối hơn.

c: được tính như sau:

Ta thấy trên đồ thị:

 r=0 thì s=0

 r=L-1 thì s= L-1

 L-1=c(L-1) γ

 c= 

( 1)

1

L

L

Code:

void Power(BYTE **f, BYTE **g)

{

int x, y;

double r,s;

double gamma = 5.0;

double c = (L-1)/pow(1.0*(L-1),gamma);

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

s = c*pow(1.0*r,gamma);;

g[x][y] = (int)s;

}

return;

}

γ=0,4

γ=1

γ=1,5

S

R

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

4

Câu 4. Xây dựng và cài đặt thuật toán biến đổi tuyến tính từng phần.

Đáp án:

Quan sát trên đồ thị ta thấy:

Biến đổi ảnh đen ít thành ảnh đen nhiều, làm cho ảnh trắng ít trở thành trắng nhiều. Tức là làm

tăng độ tương phản của ảnh (kéo giãn độ tương phản).

Ta có:

Phương trình đường thẳng đi qua 2 điểm (x1,y1) và (x2,y2) là:

2 1

1

y y

y y

=

2 1

1

x x

x x

Y=

2 1

2 1

x x

y y

(x-x1)+y1

 Đoạn I: điểm (0,0) và (r1,s1)

S=

1

1

r

s

r

 Đoạn II: điểm (r1,s1) và (r2,s2)

s

L-1

L-1

r

(r2,s2)

(r1,s1)

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

5

S=

2 1

2 1

r r

s s

(r-r1)+s1

 Đoạn III: điểm (r2,s2) và (L-1,L-1)

S=

( 1) 2

( 1) 2

L r

L s

 

 

(r-r2)+s2

trong đó: (r1,s1) và (r2,s2) được cho trước.

Code:

void PiecewiseLinear(BYTE **f, BYTE **g)

{

double r1,s1,r2,s2,rmin,rmax,s,r,m,sum;

int x, y;

rmin = f[0][0];

rmax = f[0][0];

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

if (r<rmin)

rmin = r;

if (r>rmax)

rmax = r;

}

r1 = rmin;

s1 = 0;

r2 = rmax;

s2 = L-1;

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

if (r<r1)

s = s1/r1*r;

else if (r<r2)

s = (s2-s1)/(r2-r1)*(r-r1)+s1;

else

s = (L-1-s2)/(L-1-r2)*(r-r2)+s2;

g[x][y] = (int)s;

}

return;

}

Câu 5. Xây dựng và cài đặt thuật toán cân bằng histogram.

Đáp án:

Mục đích của cân bằng histogram là làm cho histogram đồng đều. Khi đó ta làm tăng được độ

tương phản của ảnh.

Đề thi Xử Lý Ảnh GV: Trần Tiến Đức

6

Cân bằng histogram được cho bằng phương trình:

s=T(r)=(L-1)

r

r p w dw

0

( )

với pr(w) : Xác suất xảy ra mức xám w

Trong xác suất, tích phân của hàm mật độ là hàm phân phối. Công thức trên có w là biến liên

tục, ta không thể lập trình nó. Ta phải dùng công thức rời rạc:

sk=T(rk)=(L-1)



k

j

r j p r

0

( )

với k= 0,1,2,…,L-1

Code:

void HistogramEqualization(BYTE **f, BYTE **g)

{

double T[L];

int k, j, x, y;

BYTE r;

double s;

double p[L];

Histogram(f,p);

for (k=0; k<L; k++) {

T[k] = 0;

for (j=0; j<=k; j++)

T[k] = T[k] + p[j];

}

for (x=0; x<M; x++)

for (y=0; y<N; y++) {

r = f[x][y];

s = T[r];

g[x][y] = (int)(s*(L-1));

}

return;

}

Câu 6. Xây dựng và cài đặt thuật toán đặc tả histogram.

Đáp án:

Không phải cân bằng histogram lúc nào cũng tốt, nên đôi khi ta phải đưa ảnh về histogram như

ta mong muốn.

Tải ngay đi em, còn do dự, trời tối mất!