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

Đề thi Xử Lý Ảnh doc

68 2,3K 23

Đ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 68
Dung lượng 2,07 MB

Nội dung

Đề thi Xử Ảnh GV: Trần Tiến Đức 1 Đề thi Xử Ảnh GV: Trần Tiến Đức MỤC LỤC ĐỀ THI VÀ ĐÁP ÁN MÔN XỬ Ả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 c cho bs=L-1-r  ng mc xám, r là mu vào, s là mu ra Quan  th ta thy: Mu vào, tc là thut toán này bin nh  thành nh trng và trng thành  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]; S R (0,0) L-1 L-1 Đề thi Xử Ả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:  bii: s=c log(1+r) t  r là mu vào  s là mc u ra  c: hng s   ng hp log = 0. Quan sát  th thng log làm cho nh tr  Hằng số c được tính như sau: c log(1+r) Rõ ràng r=0 thì s=0 Ta cn có: r=L-1 thì s=L-1  c= )11log( 1   L L  Vi L = 256 thì c= 45.9859 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; } Intensity log L-1 L-1 (0,0) Negative Đề thi Xử Ả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c cho b s=cr  vi r là mu vào, s là mu ra, c, ng s     nh t c: được tính như sau: Ta th th:  r=0 thì s=0  r=L-1 thì s= L-1  L-1=c(L-1)   c=  )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; } γ=0,4 γ=1 γ=1,5 S R Đề thi Xử Ả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i u, làm cho nh trng ít tr thành trng nhiu. Tc là làm  n ca  n). Ta có: ng thm (x1,y1) và (x2,y2) là: 12 1 yy yy   = 12 1 xx xx   Y= 12 12 xx yy   (x-x1)+y1  n m (0,0) và (r1,s1) S= 1 1 r s r  m (r1,s1) và (r2,s2) s L-1 L-1 r (r2,s2) (r1,s1) Đề thi Xử Ảnh GV: Trần Tiến Đức 5 S= 12 12 rr ss   (r-r1)+s1  m (r2,s2) và (L-1,L-1) S= 2)1( 2)1( rL sL   (r-r2)+s2 c. 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: Ma cân bng u n ca nh. Đề thi Xử Ảnh GV: Trần Tiến Đức 6 Cân bc cho b s=T(r)=(L-1)  r r dwwp 0 )( vi p r (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 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: s k =T(r k )=(L-1)   k j jr rp 0 )( v-1 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: Không phi cân bng hit, nnh v  ta mong mun. Đề thi Xử Ảnh GV: Trần Tiến Đức 7 Tính histogram ca nh ri suy ra hàm bii histogram t ng p r (r j )= MN n j s k =T(r k )=   k j jr rp 0 )( Cho histogram mong mun p z (z i ) Bii histogram mong mun. v k =G(z k )= k k j jz szp   0 )( Cho r k , ta suy ra z k  z k = G -1 (T(r k )) Mục tiêu: có mu vào r k , ta suy ra mu ra z k . Ví d cho histogram mong mu sau: Đề thi Xử Ảnh GV: Trần Tiến Đức 8  mô t histogram mong mung th m (x 1 ,y 1 ) và (x 2 ,y 2 ): 12 1 yy yy   = 12 1 xx xx   =>y= 12 12 xx yy   (x-x1)+y1 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) Đề thi Xử Ảnh GV: Trần Tiến Đức 9 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: ng hp 2 mc xám k nhau chênh lch quá nh, nu ta cân bng histogram t ng s không có kt qung hi dùng histogram cc b. Chn ca s c l  có phn t trung tâm, ví d: m=n=3, cân bng histogram ca d liu ly t ca s và thay phn t trung tâm bng phn t mi. Đề thi Xử Ảnh GV: Trần Tiến Đức 10 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]); } [...]... toán nâng cao độ nét ảnh bằng mặt nạ làm nhòe và lọc tăng cường Đáp án: Nâng cao độ nét của ảnh dùng mặt nạ làm nhòe thường dùng trong công nghệ in ảnh, quá trình gồm các bước sau đây: - Làm nhòe ảnh Lấy ảnh gốc trừ với ảnh đã làm nhòe ta được một ảnh mới gọi là mặt nạ làm nhòe Cộng mặt nạ làm nhòe với ảnh gốc 23 Đề thi Xử Ảnh GV: Trần Tiến Đức _ Kí hiệu: f ( x, y ) : là ảnh đã làm nhòe, Mặt... trong ảnh thì ta dung lần 4 mặt nạ này lần lượt quét qua ảnh Ta gọi đầu ra tại 1 điểm ảnh là R1, R2, R3 và R4 Điểm ảnh cần lấy có Khi lập trình có 4 đầu ra, ta lấy điểm ảnh có Rmax Lưu { tổng các hệ số trong mặt nạ đều = 0 Mục đích là khi quét mặt nạ qua vùng ảnh có độ sáng đồng đều thì đầu ra sẽ = 0 Code: void LineDetectionLaplace(BYTE **f, BYTE **g) { int **temp; int x, y, r; 34 Đề thi Xử Ảnh GV:... hiện cạnh ảnh bằng đạo hàm cấp một Đáp án: Ta dùng mặt nạ đạo hàm cấp một để phát hiện cạnh ảnh Có 2 mặt nạ đạo hàm cấp một thường dùng là Sobel, Prewitt 35 Đề thi Xử Ảnh GV: Trần Tiến Đức Gọi gx là ảnh đạo hàm theo hướng x gy là ảnh đạo hàm theo hướng y Ảnh độ lớn: hay dùng công thức xấp xỉ Ảnh của hướng (direction) hay là ảnh góc pha: Ta có thể kết hợp thêm với ngưỡng để lấy những điểm ảnh trên... Xn[x][y]) { flag = FALSE; goto Thoat; 32 Đề thi Xử Ảnh GV: Trần Tiến Đức } Thoat: for (x=0; x . Đề 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. 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.

Ngày đăng: 06/03/2014, 00:21

TỪ KHÓA LIÊN QUAN

w