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
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.