intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

De thi xu ly anh

Chia sẻ: KTMT08 KTMT08 | Ngày: | Loại File: DOC | Số trang:68

239
lượt xem
62
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo giúp cho các bạn yêu thích môn xử lý hình ảnh biết các công thức quy trình đêr xử lý được ảnh đẹp. Chúc các bạn thành công

Chủ đề:
Lưu

Nội dung Text: De thi xu ly anh

  1. Đề 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: 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 S L-1 R (0,0) L-1 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
  2. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức } 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 L-1 tính như sau: Negative phương Ta có log 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 L −1 Intensity  c= log(1 + L − 1)  Với L = 256 thì c= 45.9859 L-1 (0,0) 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
  3. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức r = f[x][y]; s = c*log(1+r); g[x][y] = (int)s; } return; } 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 S 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 tối hơn. γ=1 c: được tính như sau: Ta thấy trên đồ thị: γ=1,5 • r=0 thì s=0 • r=L-1 thì s= L-1  L-1=c(L-1) γ L −1 R  c= ( L − 1) γ 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
  4. Đề 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: s L-1 (r2,s2) (r1,s1) r L-1 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à: y − y1 x − x1 = y 2 − y1 x 2 − x1 y 2 − y1 Y= (x-x1)+y1 x 2 − x1 • Đoạn I: điểm (0,0) và (r1,s1) s1 S= r r1 • Đoạn II: điểm (r1,s1) và (r2,s2) 4
  5. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức s 2 − s1 S= (r-r1)+s1 r 2 − r1 • Đoạn III: điểm (r2,s2) và (L-1,L-1) ( L − 1) − s 2 S= (r-r2)+s2 ( L − 1) − r 2 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
  6. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Cân bằng histogram được cho bằng phương trình: r s=T(r)=(L-1) ∫ pr ( 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: k sk=T(rk)=(L-1) ∑ p r (r j ) j =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
  7. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Tính histogram của ảnh rồi suy ra hàm biến đổi histogram tự đ ộng nj pr(rj)= MN k sk=T(rk)= ∑ p r (r j ) j =0 Cho histogram mong muốn pz(zi) Biến đổi histogram mong muốn. k vk=G(zk)= ∑ p z ( z j ) = s k j =0 Cho rk, ta suy ra zk như sau: zk = G-1(T(rk)) Mục tiêu: có mức xám đầu vào rk, ta suy ra mức xám đầu ra zk. Ví dụ cho histogram mong muốn như hình vẽ sau: 7
  8. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Để mô tả histogram mong muốn như hình vẽ, ta dùng ph ương trình đ ường thẳng đi qua hai điểm (x1,y1) và (x2,y2): y − y1 x − x1 y 2 − y1 = =>y= (x-x1)+y1 y 2 − y1 x 2 − x1 x 2 − x1 Code: 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
  9. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức else if (z
  10. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức void LocalHistogram(BYTE **w, int m, int n, double *p) { int x, y, k; BYTE r; for (k=0; k
  11. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức return; } Câu 8. Xây dựng và cài đặt thuật toán nâng cao chất lượng ảnh b ằng thống kê histogram. Đáp án: Nếu sự chênh lệch mức xám quá nhỏ thì cân bằng histogram cho toàn b ộ ảnh s ẽ không thấy được sự chênh lệch đó. Nếu cân bằng histogram c ục b ộ t ức cân b ằng cho từng khối ảnh, ta sẽ thấy được sự chênh lệch nhưng lại làm thay đ ổi ảnh. Vì vậy ở phần này ta nêu ra tiêu chuẩn chọn khối ảnh để làm rõ. Tiêu chuẩn chọn khối ảnh căn cứ vào 2 đại lượng thống kê là mean (giá tr ị trung bình hay giá trị kỳ vọng) và variance (phương sai). Xem xét các ví d ụ sau: Ta có: N −1 1 ∑x mean= i N i =0 và N −1 1 ∑ ( xi − mean) 2 variance= N i =0 = độ lệch chuẩn = var iance Ví dụ: Cho 2 nhóm số liệu: [0 8 12 20] và [8 9 11 12] (x-mean)2 x x-mean 0 -10 100 8 -2 4 12 2 4 20 10 10 variance = 208/4 = 52 deviation = var iance =7.21 (x-mean)2 x x-mean 11
  12. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức 8 2 4 9 -1 1 11 1 1 12 2 4 Variance=10/4=2.5 Deviation= var iance =1.58 Ý nghĩa: Variance (phương sai) dùng để đo sự phân tán c ủa d ữ li ệu xa hay g ần giá tr ị mean. Nếu variance bằng không nghĩa là dữ liệu bằng nhau. Để đo 2 khối dữ liệu với nhau thì mean và variance của kh ối phải g ần b ằng nhau. Tiêu chuẩn chọn khối trong ảnh để làm rõ: : là phương sai, còn là độ lệch chuẩn. 2 Khối được chọn là 3*3.  Ef ( x, yNếu msxy
  13. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức double StandardDeviation(BYTE **a, int sizex, int sizey, double mean) { double variance; int x, y; variance = 0; for (x=0; x
  14. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức G(x,y)=w(-1,-1)f(x-1,y-1)+w(-1,0)f(x-1,y)+…+w(0,0)f(x,y)+…+w(1,1)f(x+1,y+1) Mặt nạ lọc người ta sẽ cho tùy vào bài toán cụ thể. Tổng quát lọc trong không gian được cho bằng ph ương trình : a b ∑ ∑ w( s, t ) f ( x + s, y + t ) g(x,y)= s=− a t =−b Trong đó : mxn là kích thước của bộ lọc, m và n thường là số lẻ để bộ lọc có phần t ử trung tâm. a=m/2 và b=n/2 là kích thước nữa bộ lọc. Phép toán lọc trong không gian được gọi là tổng chập (convolution). Đối với lọc tuyến tính, mặt nạ lọc thường là bộ lọc trung bình. Ví dụ: mặt nạ lọc trung bình và mặt nạ Gauss: 1 1 1 1 2 1 1 1 x 1 1 1 x 2 4 2 9 16 1 1 1 1 2 1 Code: 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 = 0; by = 0; } else { bx = a; by = b; } for (x=bx; x
  15. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức q = q-N; r = r + w[s+a][t+b]*f[p][q]; } g[x][y] = (int)r; } return; } void LinearFilter(BYTE **f, BYTE **g) { int m, n; m = 35; n = 35; double **w; w = (double **)Alloc2D(m,n,sizeof(double)); int s, t; for (s=0; s
  16. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức } void MedianFilter(BYTE **f, BYTE **g) { int m=3,n=3; int a,b,x,y,s,t; a = m/2; b = n/2; BYTE **w; w = (BYTE **)Alloc2D(m,n,sizeof(BYTE)); for (x=a; x
  17. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức ∂f gy = ∂y :đạo hàm cấp một theo y Đạo hàm cấp một theo x được định nghĩa là : ∂f =f(x+1,y)-f(x,y) ∂x Đạo hàm cấp một theo y được định nghĩa là : ∂f =f(x,y+1) – f(x,y) ∂y Độ lớn của vectơ gradient f kí hiệu là : M(x,y)=mag( ∇ f)= g x + g y 2 2 Nếu tính căn bậc hai sẽ lâu nên ta tính trị tuyệt đ ối cho nhanh. M(x,y) ≈ |gx|+|gy| Gọi số liệu trong mặt nạ 3x3 là z1 z2 z3 z4 z5 z6 z7 z8 z9 Đạo hàm cấp một theo hướng x là : gx = z8-z5 Đạo hàm cấp một theo hướng y là : gy = z6-z5 Nhưng Roberts đã định nghĩa đạo hàm cấp một theo x như sau : gx=z9-z5 và đạo hàm cấp một theo y là : gy=z8-z6 Ta có hai mặt nạ gx và gy và gọi là mặt nạ Roberts. Mặt nạ Roberts có kích thước chẵn nên không có phần tử trung tâm. Do đó Sobel đã mở rộng định nghĩa đạo hàm cấp một như sau : ∂f gx= =(z7+2z8+z9)-(z1+2z2+z3) ∂x 17
  18. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức ∂f và gy= =(z3+2z6+z9)-(z1+2z4+z) ∂y 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
  19. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức void Gradient(BYTE **f, BYTE **g) { int **gx, **gy, **Mag; int x, y; gx = (int **)Alloc2D(M,N,sizeof(int)); gy = (int **)Alloc2D(M,N,sizeof(int)); Mag = (int **)Alloc2D(M,N,sizeof(int)); int m = 3, n = 3; double **Sobelx, **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] = 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 (x=0; x
  20. Đề thi Xử Lý Ảnh GV: Trần Tiến Đức Câu 12. Xây dựng và cài đặt thuật toán nâng cao đ ộ nét của ảnh b ằng đ ạo hàm cấp hai. Đáp án: Yêu cầu của đạo hàm cấp hai: Đạo hàm cấp hai bằng 0 ở vùng có mức xám đồng đều. - Đạo hàm cấp hai khác 0 ở đầu và cuối của mức xám bước hoặc mức xám thoai - thoải. Đạo hàm cấp hai bằng 0 dọc theo mức xám thoai thoải. - Định nghĩa đạo hàm cấp hai của hàm một chiều nh ư sau: ∂2 f =f(x+1) + f(x-1) – 2f(x) ∂2x Định nghĩa đạo hàm cấp hai của hàm hai biến là: ∂2 f ∂ f 2 ∇2 f = +2 ∂ x 2 ∂y ∇ : gradient (đạo hàm cấp một của hàm 2 biến) Đạo hàm cấp 2 của ảnh còn được gọi là toán tử Laplace. Nhắc lại: Đạo hàm cấp hai theo hướng x: ∂2 f =f(x+1,y)+f(x-1,y)-2f(x,y) ∂x 2 Đạo hàm cấp hai theo hướng y: ∂2 f =f(x,y+1)+f(x,y-1)-2f(x,y) ∂y 2 Đạo hàm cấp hai của ảnh là: ∇ 2 f ( x, y ) =f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) Hay viết dưới dạng mặt nạ như sau : 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2