Xem mẫu

  1. printf ( " "); gotoxy(1,yt+3); printf("File exists. Wish to overwrite? (y or n)- ->"); while(((ch1=tolower(getch()))!='y')&&(ch1!='n')); putch(ch1); switch(ch1) { case 'y': ind=1; break; case 'n' : gotoxy(1,yt+3); printf(" "); gotoxy(1,yt+2); printf(" "); gotoxy(1,yt+2); printf("Enter file name ---->"); scanf("%s",file_name); ind=access(file_name,0); } } fptri=fopen(file_name,"w"); theta=pi/((float)N1*sqrt((double)2.0)); for(i=0;i
  2. h[i][j]*=win; break; case '3': win=0.54+0.46*cos((double)(theta*nsqrt)); h[i][j]*=win; break; case '4': win=0.42+0.5*cos((double)(theta*nsqrt)) +0.08*cos((double)(2.0*theta*nsqrt)); h[i][j]*=win; break; case '5': if((i+i)==0); { printf("\n\nEnter a value for alpha (O to 8)-->"); scanf("%f",&alpha); alpha/=2.0; } beta=nsqrt/(float)N1; beta*=beta; beta=alpha*sqrt(fabs((double)(1.0-beta))); T=alpha ; sum1=1.0+T*T; for(k=2;k
  3. } } printf("\n\nFIR filter's coefficients. "); for(i=0;i
  4. for(i=-N1;i
  5. Bây giờ, chúng ta hãy nghiên cứu thu ận lợi thu được nhờ sử dụng cửa sổ. Chúng ta sẽ thiết kế bộ lọc FIR 5  5 sử dụng cửa sổ Blackmann và đặc tính tần số đẻ thiết kế bộ lọc cho hình 8.1. Kết quả đạt được ở hình 8.2. Hình 8.3 và 8.4 là kết quả của việc sử dụng hàm cửa sổ Kaiser với  = 2 và  = 3. H ình 8.3 Bộ lọc 5  5 dùng hàm cửa sổ Kaiser với  = 2. 8.4 Nhân đôi độ phân giải của ảnh Ảnh cho ở hình 8.5 là kết quả nhân đôi độ phân giải ảnh "CAMEL.IMG" qua phép nội suy ba chiều dùng bộ lọc thông cao có bậc 5  5 thiết kế theo kiểu lọc Butterworth với c = 0.6. Hình 8.6 cho kết quả ảnh n ày cùng áp dụng các bước tương tự nhưng với c = 0.8. So sánh ảnh thu được với ảnh rút ra từ các phép xấp xỉ FFT ta nhận thấy các ảnh này sáng hơn. Nguyên nhân có thể là do ảnh gốc "CAMEL.IMG" chỉ hơi mờ và bộ lọc thông cao giảm thiểu được mờ. Phương pháp FFT tuân theo định lý lấy mẫu vì vậy theo lý thuyết thì kết qu ả cho ra sẽ tốt h ơn. Tuy nhiên, phương pháp không gian dễ thực hiện hơn nhiều, mà lại cho ra kết quả tương tự hoặc thậm chí tốt hơn. Cần chú ý rằng mờ trên ảnh là một h àm của toán tử nội suy và không phải là ảnh. Do vậy, một bộ lọc thông cao đã được thiết kế cho kết quả thoả m ãn với một h àm nội suy đặc biệt, nó có thể dùng cho tất cả các ảnh. 161
  6. Hình 8.4 Bộ lọc 5  5 với cửa sổ hàm Kaiser với  = 3. Bài tập 8.1 Phóng đại ảnh "CAMEL.IMG " d ùng phép nội suy ba chiều áp dụng bộ lọc thông cao FIR dùng hàm cửa sổ Blackman và một tần số thông thấp chuyển tiếp dốc đứng với tần số cát c = 1,4 rad/đơn vị. Bài tập 8.2 Cho ảnh nằm trên đ ĩa có tên "MAHER.IMG ". Kích thư ớc của ảnh là 256  256 điểm ảnh. 1 . Nhân đôi ảnh dùng phép nội suy hệ toạ độ ba chiều với bộ lọc thông cao. Lựa chọn các c khác nhau, các loại hàm cửa sổ khác nhau và so sánh kết quả . 2 . Nhân đôi ảnh dùng phép nội suy của định lý lấy mẫu trong miền tần số .So sánh kết quả thu được với kết quả tốt nhất của phần 1 bài tập. Chú ý: Tất cả các ch ương trình mà b ạn sẽ cần đến cho bài tập n ày được cung ở trong các chương trước. Bởi vì phép nội suy cũng chỉ là bộ lọc thông thấp đối xứng vuông nên kết qu ả có thể tốt hơn nếu ta có thể dùng bộ lọc thông thấp FIR đối xứng vòng tròn (LPF) để thay thế. Điểm cắt tần số của bộ lọc này phải đủ cao để cho qua toàn bộ phổ của ảnh. Phương pháp dùng bộ lọc thông thấp nhân đôi độ phân giải ảnh tương tự như phép nội suy xấp xỉ. Ảnh này đầu tiên được căng ra bằng cách lưu vào m ột mảng có kích thư ớc 2N  2N, ở đây N là chiều rộng ho ặc chiều cao của ảnh. Tất cả các h àng ho ặc cột đều chứa các giá trị zero ở các vị trí còn trống. Sau đó ảnh n ày được lọc qua một bộ lọc thông thấp, rồi 162
  7. đến một bộ lọc thông cao đối xứng vòng tròn. Hình 8.7 giới thiệu ảnh gốc "MAHER.IMG". Hình 8.8 trình bày ảnh phóng đại d ùng lọc thông thấp 5  5 với c = 1 .4, thiết kế dùng cửa sổ Blackman, sau đó lọc bằng bộ lọc thông cao 3  3 cũng dùng cửa sổ Blackman. Hệ số bộ lọc thông thấp 5  5 cho ở b ảng 8.1 và hệ số bộ lọc thông cao 3  3 cho ở bảng 8.2. Các bộ lọc thông thấp và thông cao dùng cho ví dụ này có th ể áp dụng cho tất cả các ảnh khác. Vấn đề khó khăn còn để lại cho bạn hoàn thiện chính là các giá trị khác nhau của c. H ình 8.5 Ảnh "CAMEL.IMG" sau khi dùng bộ lọc thông cao Butterworth với c = 0.6. 163
  8. Hình 8.6 Ảnh "CAMEL.IMG" sau khi dùng bộ lọc thông cao Butterworth với c = 0 .8. Bài tập 8.3 Lập một ch ương trình đưa ra phép nội suy dùng b ộ lọc thông thấp và thông cao FIR. Ảnh phóng đại ra bằng cách thêm các hàng zero và cột zero với các hàng và cột của ảnh gốc, ảnh đã lọc phải chứa trong bộ đệm với kích thước nhỏ nhất . Hình 8.7 Ảnh "MAHER.IMG" gốc. 164
  9. Hình 8.8 Ảnh "MAHER.IMG" dùng LPF tuần hoàn theo HPF. Bài tập 8.4 1. Thiết kế bộ lọc thông thấp với điểm cắt tần số trong khoảng 1.7 đến 2 .5 rad/giây với b ước chia 1 rad/giây, kích thước là 7  7 và 11  11, áp dụng một h àm cửa sổ xấp xỉ . 2. Vẽ ra đáp ứng tần số b iên độ và so sánh kết quả . 3. Dùng chương trình trong bài tập 8.3 vào việc phóng đại ảnh "IHAB.IMG" và "CAMEL.IMG" với các hệ số của phần 1. 4. Tìm ra kết quả phóng đại tốt nhất, chú ý đến bộ lọc đã dùng. 5. So sánh kết quả "tốt nhất " với ảnh thu được d ùng FFT với các giả thiết mô tả trong chương 7. 6. Sử dụng các ảnh khác nhau (được cung cấp trong cuốn sách n ày hay của riêng bạn) để kiểm tra kết quả phóng đại ảnh dùng hệ số của bộ lọc đã ch ọn trong phần 4. Hình 8.9 Lọc thông thấp với c = 1 .7 cho phép nội suy. Bảng 8.3 Hệ số cho bộ lọc thông thấp của hình 8.9 0 .000517 -0.003200 -0.009179 -0.011698 -0.009179 -0.003200 0 .000517 -0.003200 -0.010464 -0.000057 0 .013089 -0.000057 -0.010464 -0.003200 -0.009179 -0.000057 0.079576 0 .141409 0.079576 -0.000057 -0.009179 165
  10. -0.011698 0.013089 0.141409 0 .235352 0.141409 0.013089 -0.011698 -0.009179 -0.000057 0.079576 0 .141409 0.079576 -0.000057 -0.009179 -0.003200 -0.010464 -0.000057 0 .013089 -0.000057 -0.010464 -0.003200 0 .000517 -0.003200 -0.009179 -0.011698 -0.009179 -0.003200 0 .000517 166
nguon tai.lieu . vn