Bài giảng Xử lý ảnh số - 3. Xử lý ảnh trong miền không gian

Tài liệu Bài giảng Xử lý ảnh số - 3. Xử lý ảnh trong miền không gian: XỬ LÝ ẢNH TRONG MIỀN KHÔNG GIAN NGÔ QUỐC VIỆT TPHCM-2012 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ọcOrder-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 2Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt  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 3Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 4Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt Gốc Mặt nạ AND Gốc Mặt nạ OR  Sử dụng các thao tác logic trên ma trận củaOpenCV int _tmain(int argc, _TCHAR* argv[]) { IplImage *img1 = cvLoadImage(“..\\..\\images\\building.jpg"); IplImage *img2 = cvLoadImage(".\\..\\images\\black.jpg"); IplImage *img3, ipl...

pdf36 trang | Chia sẻ: honghanh66 | Lượt xem: 1218 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Xử lý ảnh số - 3. Xử lý ảnh trong miền không gian, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
XỬ LÝ ẢNH TRONG MIỀN KHÔNG GIAN NGÔ QUỐC VIỆT TPHCM-2012 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ọcOrder-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 2Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt  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 3Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 4Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt Gốc Mặt nạ AND Gốc Mặt nạ OR  Sử dụng các thao tác logic trên ma trận củaOpenCV 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  Thực hiện trên các pixel của ảnh xám  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 Thao tác Định nghĩa Kiểu dữ liệuOutput 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 Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 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  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  Ả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 ),(),(),( yxnyxfyxg ii     K i i yxg K yxg 1 ),( 1 ),( Hàm noise  Trung bình của ảnh nhiễu tiến gần đến ảnh tốt f(x,y).  Phương sai  K càng tăng nhiễu sẽ giảm  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 ),()),(( yxfyxgE  ),(),( 1 yxgyxg iK   Dùng các hàm rand(): (rand()/(float)0x7fff)-0.5; cvGetSize: lấy kích thước ảnh cvCloneImage: tạo ảnh mới cvGetReal2D: get pixel value cvSetReal2D: set pixel value Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 10 K = 8 noisy images K = 16 noisy images K = 64 noisy images K = 128 noisy images Ảnh bị nhiễu Gần giống với ảnh gốc  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.  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 Phép toán chập là trung tâm của hầu hết xử lý trên ảnh  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 ảnhmớ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  Liên tục: Tích chập của 2 hàm f(x) và h(x) được định nghĩa bởi:  Rời rạc: Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 13     dmmxhmfxhxfxg )()()()()(     k knhkfnhnfng )()()()()(  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:  Rời rạc Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 14        dmdnnymxhnmfyxhyxfyxg ),(),(),(),(),(        l k lnkmhlkf nmhnmfnmg ),(),( ),(),(),(  Kích thước kernel mxn, ảnh kích thước MxN, tích chập được định nghĩa bởi  Thông thường, nhân chập có dạng vuông (m=n), vớim 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     a al b bk lkhlykxfyxg ),(),(),( 2/)1(  nb 2/)1(  ma  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  Nhân chập h(j,k) là tách được nếu  Khi đó, phép lọc có thể thực hiện theo cách sau  Độ phức tạp khi tính toán trên mỗi điểm ảnh từ O(J*K) giảm xuốngO(J+K). Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 17 )()(),( jhkhkjh colrow               1 0 1 0 )(),()(),( J j col K k row jhknjmakhnmc Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 18 Giữ nguyên kích thước Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 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 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)) = height || (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  Sử dụng các nhân chập với các hệ số thay đổi có thể tạo ra các hiệu ứng khác nhau trên ảnh output. Một số hiệu ứng của lọc không gian  Làm trơn hoặc mờ ảnh: giảm nhiễu, giảm chi tiết nhỏ.  Làm nét ảnh  Phát hiện biên (trình bày chi tiết trong bài giảng sau)  Các bộ lọc không gian thường có kích thước 3x3 hoặc 5x5. Một số trường hợp dùng ma trận 7x7  Ngoài ra có thể sử dụng các lọc phi tuyến (thảo luận trong “Xla_BaiGiang04”) Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 21  Sử dụng bộ lọc không gian tuyến tính để tính giá trị pixel output là trung bình của các pixel trong nhân chập.  Còn được gọi là bộ lọc trung bình hay lowpass filter.  Các bộ lọc “đều” có dạng chữ nhật hay tròn.Cụ thể  Kết quả các cụm pixel nhỏ (nhỏ hơn kích thước nhân chập) sẽ bị “hòa” vào các vùng pixel lớn hơn. Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 22                  11111 11111 11111 11111 11111 25 1 ),( kjhrect                  01110 11111 11111 11111 01110 21 1 ),( kjhcirc  Có thể dùng các bộ lọc biến thể khác để làm trơn ảnh  Mặt nạ thứ hai được gọi là lấy trung bình có trọng số. Nghĩa là các pixel sẽ được nhân với các hệ số khác nhau.  Với trung bình có trọng số, pixel output được xác định bởi Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 23            111 111 111 9 1 ),( kjhrect            121 242 121 16 1 ),( kjh         a as b bt a as b bt tsw tysxftsw yxg ),( ),(),( ),(  Một số bộ lọc làm trơn ảnh khác: tam giác, Gauss, bộ lọc trên miền Fourier (thảo luận sau), các bộ lọc phi tuyến (trung vị, Kuwahara)  Tam giác: là phép chập của hai bộ lọc đều đồng nhất (đều chữ nhật hoặc đều tròn) Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 24                  12321 24642 36963 24642 12321 81 1 ),( kjhrect Dạng chóp                  00100 02220 12521 02220 00100 25 1 ),( kjhcirc Dạng nón  Kết quả làm trơn ảnh với bộ lọc trung bình có kích thước 3, 5, 9, 15, 35 Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 25 Ảnh gốc  Có nhiều cách để tạo bộ lọc Gauss (tham khảo tài liệu [1] trang 96-100).  Bộ lọcGauss là mờ/trơn ảnh Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 26                       0005000 0518321850 0186410064180 532100100100325 0186410064180 0518321850 0005000 #include "highgui.h" #include "cv.h" void main() { IplImage* src = cvLoadImage("lena.jpg", 1); IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, src->nChannels); cvSmooth(src, dst, CV_BLUR, 3, 3); cvNamedWindow("src", 1); cvShowImage("src", src); cvNamedWindow("dst", 1); cvShowImage("dst", dst); cvReleaseImage(&src); cvReleaseImage(&dst); cvWaitKey(0); } Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 27 Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 28  Bộ lọc trung vị  Giá trị điểm ảnh output trong nhân chập đang xét bằng giá trị độ sáng thứ (J*K)/2 trong phần ảnh đang được chập  Một biến thể: thay vì lọc trung vị, có thể lọc phần trăm. Nghĩa là thay vì lấy 50% giá trị sáng mà bằng p% (từ 0% - lọc cực tiểu - đến 100% - lọc cực đại)  Bộ lọc Kuwahara  Cho phép giữ lại các “cạnh” trên ảnh trong quá trình làm trơn.  Trung vị: cho dãy {x1, x2, , xn} , trung vị của dãy được xác định bởi  Nhận xét: min tạiMed({xi}). Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 29                            evenn n xor n x oddn n x xMed n 1 2 1 2 1 2 })({    n i ixx 1  Tìm trung vị trong phần ảnh đang xét (cửa sổ quét qua)  Gán giá trị cho pixel “tâm”.  Ví dụ: Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 30 )()}(|)({ PMedPWqqI       elsePMed PMedPIPI PI )( 0)()()( )(                1212 1124 12164 2321 I                1212 1124 1224 2321 I Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 31 Sắp xếp các cường độ sáng trong lân cận của p. 131 133 133 136 140 143 147 152 154 157 160 162 163 164 165 171 p median được gán cho pixel tại vị trí p trong ảnh output. Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 32 noisy blurred median Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 33 3x3-median x 1 3x3-blur x 1Ảnh nhiễu  Lọc trung vị cho kết quả khử nhiễu tốt hơn so với các bộ lọc làm trơn ảnh  Lọc trung vị duy trì cạnh tốt hơn so với blurring filter.  Chia nhân chập thành các vùng con. Tính độ sáng trung bình của mỗi vùng con.  Chọn độ sáng trung bình nào có phương sai nhỏ nhất làm độ sáng của pixel trong nhân chập lớn đang xét Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 34 Bộ lọc Miền Kiểu Giá Tách được Đều Không gian Tuyến tính Vuông Có Đều Không gian Tuyến tính Tròn Không Tam giác Không gian Tuyến tính Vuông Có Tam giác Không gian Tuyến tính Tròn Không Gauss Không gian Tuyến tính  Có Trung vị Không gian Phi tuyến Vuông Không Kuwahara Không gian Phi tuyến Không Không Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 35  Sinh viên sử dụng các hàm sau để thực hiện yêu cầu làm trơn ảnh với các nhân chập khác nhau. cvFilter2D: để thực hiện lọc ảnh (đổi nhân chập để làm trơn ảnh) cvSmooth: làm trơn ảnh với các nhân chập được định nghĩa sẵn trongOpenCV) Bài giảng Xử lý ảnh-TS. Ngô Quốc Việt 36

Các file đính kèm theo tài liệu này:

  • pdfxla_baigiang_03_6755_5199.pdf
Tài liệu liên quan