Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,95 MB
Nội dung
Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Đề 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: !"#$% #$&'(%#$&') *')+,) /#$&')01(23&'(%#'4.35 678(869 Cod e: 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]; : ; <=%=> Đề thi Xử Lý Ảnh GV: Trần Tiến Đức 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: ?35@3 <A> • #$&'( • #$&') • "B • <A>C=9 *')+, C7D9 Hằng số c được nh như sau: E) <A> ;F== E) & )11log( 1 −+ − L L G23 ! H 9IJ I Cod e: 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; } K63. <=%=> L6)M(6 Đề thi Xử Lý Ảnh GV: Trần Tiến Đức 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: N35@3O.P) Q (23#$&'(%#$&')% %Q"B9 • QR • QS"39 c: được nh như sau: E) D+, • == • <> Q γ )1( 1 − − L L Cod e: 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; } T γ=0,4 γ=1 γ=1,5 S R Đề thi Xử Lý Ảnh GV: Trần Tiến Đức 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: N35@36U63V'%8U783V'9E# WXY)<Z[3\X>9 Ta có: ?C]3^')3_<$%.>(<$%.> 12 1 yy yy − − 12 1 xx xx − − ` 12 12 xx yy − − <$$>A. • abK3_<=%=>(<%> : 1 1 r s • abKK3_<%>(<%> H L-1 L-1 r <%> <%> Đề thi Xử Lý Ảnh GV: Trần Tiến Đức : 12 12 rr ss − − <>A • abKKK3_<%>(<%> : 2)1( 2)1( rL sL −− −− <>A <%>(<%>29 Cod e: 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: /cUY)3)3)+V'9d3)WX Y)9 Đề thi Xử Lý Ảnh GV: Trần Tiến Đức 3) E<><> ∫ r r dwwp 0 )( (23 r <e>f'-$.)#$w E$'-%gY)4X"39h#Dw353D c%)Zh_49E)3Bih#C3b Z E< Z ><> ∑ = k j jr rp 0 )( (23Z=%%%j% Cod e: 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: dh33)kO"%Dh3Z3)3)(V3) )'"9 ! Đề thi Xử Lý Ảnh GV: Trần Tiến Đức EU3)Y)+3'.)35@33)lX <r m > MN n j Z E< Z > ∑ = k j jr rp 0 )( 3)'" n <z i > N35@33)'"9 ( Z o<n Z > k k j jz szp = ∑ =0 )( Z %)'.)n Z )' n Z o <E< Z >> Mục êu:#$&'( Z %)'.)#$&')n Z 9 GUBc3)'"(p)' q Đề thi Xử Lý Ảnh GV: Trần Tiến Đức a_h3)'"(p%)BiC]3^'))3 3_<$ %. >(<$ %. > 12 1 yy yy − − 12 1 xx xx − − S. 12 12 xx yy − − <$$>A. Cod e: void HistogramSpecification(BYTE **f, BYTE **g) { double pz1,pz2,pz3,pz4,pz5,pz6; int z1,z2,z3,z4,z5,z6; double pz[L]; double G[L]; double pr[L]; double T[L]; double sum; int z, k, i, j, x, y; // Histogram dac ta z1 = 0; pz1 = 0.75; z2 = 10; pz2 = 7; z3 = 20; pz3 = 0.75; z4 = 180; pz4 = 0; z5 = 200; pz5 = 0.7; z6 = 255; pz6 = 0; for (z=0; z<L; z++) if (z<z2) pz[z] = (pz2-pz1)/(z2-z1)*(z-z1) + pz1; else if (z<z3) pz[z] = (pz3-pz2)/(z3-z2)*(z-z2) + pz2; else if (z<z4) J Đề thi Xử Lý Ảnh GV: Trần Tiến Đức pz[z] = (pz4-pz3)/(z4-z3)*(z-z3) + pz3; else if (z<z5) pz[z] = (pz5-pz4)/(z5-z4)*(z-z4) + pz4; else pz[z] = (pz6-pz5)/(z6-z5)*(z-z5) + pz5; // Chuan hoa pz sao cho tong xac suat bang 1 sum = 0; for (z=0; z<L; z++) sum += pz[z]; for (z=0; z<L; z++) pz[z] = pz[z]/sum; for (k=0; k<L; k++) { G[k] = 0; for (i=0; i<=k; i++) G[k] = G[k] + pz[i]; } // Histogram cua anh Histogram(f,pr); for (k=0; k<L; k++) { T[k] = 0; for (j=0; j<=k; j++) T[k] = T[k] + pr[j]; } // Matching 2 histogram BYTE r; double s; for (x=0; x<M; x++) for (y=0; y<N; y++) { r = f[x][y]; s = T[r]; for (k=0; k<L; k++) if (G[k]>=s) break; g[x][y] = k; } return; } Câu 7. Xây dựng và cài đặt thuật toán cân bằng histogram cục bộ. Đáp án: EC#$ZV)'Dr^'s%5')3)lX pZhZ5^'9EC)3Bi3)cX9 tu)@ZU2v_&u'%(UBcT%3)Y)Bw 3r' Pu)@().&u'&u239 I Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Cod e: void LocalHistogram(BYTE **w, int m, int n, double *p) { int x, y, k; BYTE r; for (k=0; k<L; k++) p[k] = 0; for (x=0; x<m; x++) for (y=0; y<n; y++) { r = w[x][y]; p[r]++; } for (k=0; k<L; k++) p[k] = p[k]/(m*n); return; } void LocalHistogramEqualization(double *p, double *T) { int j, k; for (k=0; k<L; k++) { T[k] = 0; for (j=0; j<=k; j++) T[k] = T[k] + p[j]; } return; } void LocalEnhancement(BYTE **f, BYTE **g) { int m, n; m = 3; n = 3; BYTE **w; int x, y, s, t, a, b; a = m/2; b = n/2; double p[L]; double T[L]; BYTE r; w = (BYTE **)Alloc2D(m,n,sizeof(BYTE)); for (x=a; x<M-a; x++) for (y=b; y<N-b; y++) { for (s=-a; s<=a; s++) for (t=-b; t<=b; t++) w[s+a][t+b] = f[x+s][y+t]; LocalHistogram(w,m,n,p); LocalHistogramEqualization(p,T); r = f[x][y]; g[x][y] = (int)((L-1)*T[r]); } = [...]... **Sobely; Sobelx = (double **)Alloc2D(m,n,sizeof(double)); Sobely = (double **)Alloc2D(m,n,sizeof(double)); Sobelx[0][0] = -1; Sobelx[0][1] = -2; Sobelx[0][2] = -1; Sobelx[1][0] = 0; Sobelx[1][1] = 0; Sobelx[1][2] = 0; Sobelx[2][0] = 1; Sobelx[2][1] = 2; Sobelx[2][2] = 1; Sobely[0][0] = -1; Sobely[0][1] = Sobely[1][0] = -2; Sobely[1][1] = Sobely[2][0] = -1; Sobely[2][1] = 0; Sobely[0][2] = 0; Sobely[1][2]... Viết dưới dạng mặt nạ như sau : Code: void ConvolutionInt(BYTE **f, int M, int N, int **g, double **w, int m, int n, BOOL border) { int bx, by, a, b, x, y, s, t, p, q; double r; a = m/2; b = n/2; if (border) { bx = 0; by = 0; } else { bx = a; by = b; } for (x=bx; x . Sobelx[2][2] = 1; Sobely[0][0] = -1; Sobely[0][1] = 0; Sobely[0][2] = 1; Sobely[1][0] = -2; Sobely[1][1] = 0; Sobely[1][2] = 2; Sobely[2][0] = -1; Sobely[2][1] = 0; Sobely[2][2] = 1; ConvolutionInt(f,M,N,gx,Sobelx,m,n,TRUE); ConvolutionInt(f,M,N,gy,Sobely,m,n,TRUE); for. ),(),( E $ZU2Y)Xt%(C"v_Xt&u'9 )|(|ZU2w)Xt9 ?[tZh3)t3@4<('M>9 a"3(23t'.5g%‚btCXt'9 GUBc‚bt'(‚bo)' Co de : void Convolution(BYTE **f, int M, int N, BYTE **g, double **w, int m, int n, BOOL border) { int bx, by, a, b, x, y, s, t, p, q; double r; a = m/2; b = n/2; if (border) { bx =. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Đề 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