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

Giáo trình xử lý ảnh y tế Tập 1b P19

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

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

Thiết bị có khả năng số hoá ảnh dùng ít nhất là 8 bit (256 mức xám) và ảnh thu được phải có kích thước ít nhất là 512 - 512 điểm hoặc hơn nữa.

Chủ đề:
Lưu

Nội dung Text: Giáo trình xử lý ảnh y tế Tập 1b P19

  1. /* First stage. */ gotoxy(1,3); printf(" First stage. "); for(j=0;j
  2. printf(" Transposing of intermediate file. "); rewind(fptro); transpose(fptro,N,m); rewind(fptro); /* Second stage. */ printf("\n Second stage."); for(j=0;j
  3. fwrite(buff,NB,1,fptro); } fclose(fptro); } void FFT (float *xr, float *xi, float *wr, float *wi, int m, int N) { /* FFT algorithm. Decimation-in-time algorithm. Note: 1. N=2 to the power of m. 2. The input arrays are assumed to be rearranged in bit-reverse order. You will need to use routine "bit-reversal" for that purpose. 3. The twiddle factors are assumed to be stored in LUT's wr[] and wi[]. You will need to use routine LUT for calculating and storing twiddle factors. */ int ip,k,kk,l,incr,iter,i,j; float Tr,Ti; ip=1; kk=(N>>1); incr=2 ; for(iter=0; iter
  4. xr[j]=xr[j]+Tr; xi[j]=xi[j]+Ti; } if(iter!=0) { for(k=1; k=1 ; ip
  5. float IMAG; }; void transpose(FILE *fptr, int N, int n) /* Algorithm */ { int N1 , inc ; int iter,i,k; int k1,inc1; int k2,j,k3,k4,NS; struct COMPLEX *buff1,*buff2,tmp; long loc,NT; NS=sizeof(struct COMPLEX); NT=N*NS ; buff1=(struct COMPLEX *)malloc(NT); buff2=(struct COMPLEX *)malloc(NT); N1=N/2 ; inc=1 ; inc1=2 ; for(iter=0;iter
  6. perror("fseek failed"); exit(1) ; } else fread(buff2,NT,1,fptr); k3=0 ; for(k2=0;k2
  7. Bài tập 6.5 Cho các mảng 2-D 1 1 1 1 1 1     và X  1 1 1 Y  1 1 0 0 0 0 1 0 0     Phát triển một chương trình C thực hiện Phát triển chương trình C tính tích chập tuần hoàn giữa hai dãy trong miền 1. không gian. Phát triển chương trình C mà sẽ thêm các điểm 0 để mỗi chiều của mảng 2. có độ dài ít nhất là 3 + 3 – 1 = 5 và định dạng tích chập tuần hoàn qua DFT. Dùng chương trình 6.6 để đưa ra tích chập tuần hoàn qua 2-D FFT. 3. 6.6 Hiển thị FFT Nếu FFT của một ảnh trong tr ường hợp tổng quát là một mảng của các số phức đầy đủ, người ta thường biểu diễn biên độ và pha của tần số của ảnh. Hai yếu tố này biểu diễn tính chất của ảnh. Thông thường biên độ tần số được biểu diễn riêng lẻ và gọi là phổ biên độ. Mặc dù vậy, như chúng ta đã nghiên cứu, pha đóng vai trò quan trọng trong xử lý ảnh, và hợp không hợp lý khi chỉ biểu diễn phổ biên độ của ảnh. Để biểu diễn phổ dưới dạng ảnh, tất cả các việc chúng ta cần phải làm là chia biên độ của FFT thành các giá trị từ 0 đến 255 (cho ảnh 8 bit). Dù thế nào đi chăng nữa thì phổ của ảnh cũng bị suy giảm rất nhanh khi tần số tăng lên. Vì vậy mà vùng tần số cao sẽ trở nên lu mờ khi biểu diễn phổ dưới dạng ảnh. Để giải quyết vấn đề này chúng ta cần xử lý biên độ phổ một chút bằng hàm log. Hàm logarit sẽ sửa độ khuếch đại, và thay thế cho hiển thị phổ |H(u,v)| chúng ta hiển thị: D(u,v) = log10(1+|H(u,v)|) (6.67) Biểu thức này cho ta giá trị zero khi D(u,v) = 0 hay |H(u,v)| = 0 và như vậy D(u,v) luôn luôn có giá trị dương. Một chương trình dùng để chuyển đổi phổ thành dạng ảnh được cho ở chương trình 6.7. Hình 6.13 giới thiệu phổ của ảnh "IKRAM.IMG" trong hình 3.2a sau khi được chuyển đổi dùng biểu thức (6.67). Điểm tần số (0,0) nằm ở trung tâm màn hình. Chú ý phổ ảnh giảm xuống rất nhanh chóng khi tần số tăng lên. 129
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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