intTypePromotion=3

Bài giảng Xử lý ảnh số: Chương 3 - TS. Ngô Quốc Việt

Chia sẻ: 4584125 4584125 | Ngày: | Loại File: PDF | Số trang:36

0
59
lượt xem
18
download

Bài giảng Xử lý ảnh số: Chương 3 - TS. Ngô Quốc Việt

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Xử lý ảnh số - Chương 3 trình bày những kiên thức về xử lý ảnh trong miền không gian. Các nội dung chính trong chương này gồm có: Các xử lý logic và số học trên ảnh, các bộ lọc không gian cơ bản, các bộ lọc không gian làm trơn ảnh, các bộ lọc không gian làm nét ảnh, các giải thuật khử nhiễu. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Xử lý ảnh số: Chương 3 - TS. Ngô Quốc Việt

  1. XỬ LÝ ẢNH TRONG MIỀN KHÔNG GIAN NGÔ QUỐC VIỆT TPHCM-2012
  2. 1. Các xử lý logic và số học trên ảnh  Các thao tác logic  Trừ ảnh , trung bình ảnh 2. Các bộ lọc không gian cơ bản 3. Các bộ lọc không gian làm trơn ảnh  Bộ lọc tuyến tính làm trơn  Các bộ lọc Order-Statistics 4. Các bộ lọc không gian làm nét ảnh 5. Các giải thuật khử nhiễu Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 2
  3.  Thực hiện các phép logic giữa hai hoặc nhiều ảnh. Cụ thể  NOT c = a  OR c=a+b  AND c=ab  XOR c = a  b = a  (b) + (a  b)  SUB c = a \ b = a – b = a  (b) Chỉ cần 3 toán tử: AND, OR, NOT  Mỗi thao tác thực hiện trên từng điểm ảnh Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 3
  4. Gốc Mặt nạ AND Gốc Mặt nạ OR Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 4
  5.  Sử dụng các thao tác logic trên ma trận của OpenCV int _tmain(int argc, _TCHAR* argv[]) { IplImage *img1 = cvLoadImage(“..\\..\\images\\building.jpg"); IplImage *img2 = cvLoadImage(".\\..\\images\\black.jpg"); IplImage *img3, iplhdr; CvMat * mat1, * mat2, mat3, mathdr1, mathdr2; mat1 = cvGetMat(img1, &mathdr1); mat2 = cvGetMat(img2, &mathdr2); mat3 = *mat1; cvAnd(mat1, mat2, &mat3); //cvOr; cvNot; cvAdd; cvSub img3 = cvGetImage(&mat3, &iplhdr); cvNamedWindow("Logics", CV_WINDOW_AUTOSIZE); cvShowImage("Logics", img3); cvWaitKey(0); cvDestroyWindow("Logics:"); cvReleaseImage(&img1); cvReleaseImage(&img2); return 0; } Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 5
  6.  Thực hiện trên các pixel của ảnh xám Thao tác Định nghĩa Kiểu dữ liệu Output ADD c=a+b Nguyên SUB c=a–b Nguyên MUL c=a*b Nguyên hoặc thực DIV c=a/b Thực LOG c = log (a) Thực EXP c = exp(a) Thực SQRT c = sqrt(a) Thực TRIG c = sin/cos/tan(a) Thực INVERT c = (2b -1 ) - a Nguyên  Thường sử dụng toán tử SUB nhằm tách phần nổi và nền Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 6
  7.  Nhằm loại bớt phần “nền” ra khỏi ảnh cần phân tích (y khoa, thiên văn, …) Nguồn: R. F. Gonzalez & R.Wood Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 7
  8.  Có thể ứng dụng để làm giảm nhiễu trong ảnh. Bằng cách lấy trung bình pixel từ các ảnh nhiễu (ngẫu nhiên, nhiệt, v.v) để tạo ra pixel cùng tọa độ trong ảnh output.  Cho K ảnh nhiễu khác nhau, ảnh trung bình được xác định bởi Hàm noise K 1 gi ( x, y)  f ( x, y)  ni ( x, y) g ( x, y )  K  g ( x, y ) i 1 i  Ảnh được làm rõ hơn bằng tạo ra K ảnh nhiễu (ngẫu nhiên, muối tiêu – thảo luận sau), và lấy trung bình các ảnh này. Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 8
  9.  Trung bình của ảnh nhiễu tiến gần đến ảnh tốt f(x,y). E( g ( x, y))  f ( x, y)  Phương sai Dùng các hàm 1  g ( x, y )   gi ( x, y ) rand(): (rand()/(float)0x7fff)-0.5; K cvGetSize: lấy kích thước ảnh  K càng tăng  nhiễu sẽ giảm cvCloneImage: tạo ảnh mới cvGetReal2D: get pixel value cvSetReal2D: set pixel value  Sinh viên hãy viết chương trình giảm nhiễu bằng kỹ thuật “trung bình ảnh” Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 9
  10. K = 8 noisy images K = 16 noisy images Gần giống với ảnh gốc Ảnh bị nhiễu K = 64 noisy images K = 128 noisy images Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 10
  11.  Dựa trên cáp phép toán về tích chập (convolution) trên lân cận của từng pixel. Phép toán chập là trung tâm của hầu hết xử lý trên ảnh  Lân cận vuông của một pixel sẽ được thực hiện chập với subimage cùng kích thước để tạo ra giá trị mới của pixel đang xét.  Subimage gọi là: filter (bộ lọc), mask (mặt nạ), kernel (nhân chập), template (mẫu chập), hay window (cửa sổ chập). Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 11
  12.  Filter/Mask được di chuyển từng pixel trên ảnh và thực hiện chập để tạo ra giá trị điểm ảnh mới  Hình ảnh thể hiện cơ chế lọc Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 12
  13.  Liên tục: Tích chập của 2 hàm f(x) và h(x) được định nghĩa bởi:  g ( x )  f ( x )  h( x )   f (m)h( x  m)dm   Rời rạc: g (n)  f (n)  h(n)  k  f (k )h(n  k )  Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 13
  14.  Liên tục: Tích chập của 2 hàm f(x) và h(x) hai chiều được định nghĩa bởi:  g ( x, y )  f ( x, y )  h ( x, y )    f (m, n)h( x  m, y  n)dmdn   Rời rạc g (m, n)  f (m, n)  h(m, n)      f ( k , l ) h( m  k , n  l ) l  k   Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 14
  15.  Kích thước kernel mxn, ảnh kích thước MxN, tích chập được định nghĩa bởi a b a  (m  1) / 2 g ( x, y )    f ( x  k , y  l ) h( k , l ) l  a k b b  (n  1) / 2  Thông thường, nhân chập có dạng vuông (m=n), với m và n là số lẻ.  Chú ý: tâm của nhân chập thường ở giữa cửa cổ chập.  Tại một vị trí bất kỳ, pixel đích sẽ bằng tổng các tích giữa pixel nguồn với các phần tử tương ứng trong nhân Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 15
  16.  Tích chập giữa f(M1xN1) và nhân h(M2xN2) có thể tạo ra các ma trận có kích thước như sau, tùy thuộc vào kiểu chập.  Giữ nguyên kích thước: M1xN1 (same convolution)  Tăng kích thước : (M1+M2-1)x(N1+N2-1) (full convolution)  Giảm kích thước: (M1-M2+1)x(N1-N2+1) (valid convolution) Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 16
  17.  Nhân chập h(j,k) là tách được nếu h( j, k )  hrow(k )  hcol ( j )  Khi đó, phép lọc có thể thực hiện theo cách sau J 1 K 1  c(m, n)    hrow(k )a(m  j, n  k )hcol ( j ) j 0  k 0   Độ phức tạp khi tính toán trên mỗi điểm ảnh từ O(J*K) giảm xuống O(J+K). Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 17
  18. Giữ nguyên kích thước Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 18
  19. Tăng kích thước Tâm ma trận chập nằm ngoài ảnh Giảm kích thước Ma trận chập nằm gọn trong ảnh Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 19
  20. for(int y = 0; y < height; ++y) { for(int x = 0; x < width; ++x) { sum = 0; for(int i = 0; i < kHeight-1; i++) { for(int j = 0; j < kWidth-1; j++) { if((y+(i-kMiddleHeight)) < 0 || (y+(i-kMiddleHeight)) >= height || (x+(j-kMiddleWidth)) < 0 || (x+(j-kMiddleWidth)) >= width) { result = 0; } else { result = input[y+(i-kMiddleHeight), x+(j-kMiddleWidth)] * kernel[I, j]; } sum += result; } } result[y, x] = sum; } } Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 20

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản