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 3 P14

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

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

Chương trình cho ở dưới đây chỉ làm việc trên vỉ mạch ATI PIB đã được đề cập đến trong chương 11. Bạn có thể sửa đổi làm cho nó tương thích với các phần cứng thông dụng; các sửa đổi này không có gì là khó khăn lắm. Chương trình này có sử dụng chuột. Nếu bạn có vỉ mạch ATI PIB , đầu tiên bạn cần nạp một ảnh trên màn hình PIB.

Chủ đề:
Lưu

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

  1. k=0; LK=1; for(iter=1;iter
  2. NK21; for(i=1;i
  3. T=x[N-1]; k=1; for(j=kk;j
  4. { int i,j,k1,k2,N,N1,NB,NS; float *buff,nsq; FILE *fptr; char file_name[14]; int ch; clrscr(); printf("Enter input file name containing 2-D FCT result.-->"); scanf("%s",file_name); fptr=fopen(file_name,"rb"); if(fptr==NULL) { printf("\nNo such file exists.\n"); exit(1); } nsq=(float)filelength(fileno(fptr)); N=sqrt((double)(nsq/sizeof(float))); printf("\nEnter block size used (8x8, 16x16, etc.)-- >"); scanf("%dx%d",&NB,&NB); N1=N/NB; NS=NB*N; buff=(float *)malloc(NS*sizeof(float)); printf("\nPress ESC to exit."); clrscr(); for(i=0;i
  5. } clrscr(); gotoxy(1,1); } } fclose(fptr) ; } } Một mẫu của 2 -D FCT từ một khối rút ra từ ảnh IKRAM.IMG giới thiệu trong hình 13.13. Các thành ph ần một chiều (các khối có tần số 0,0) có giá trị lớn nhất. Thành phần n ày biểu diễn giá trị trung bình của khối. Các th ành phần khác (được hiểu là các thành phần xoay chiều) phải có các giá trị nhỏ hơn. 13.4.2 Sự phóng to và sự thu nhỏ của các ảnh Một trong các ứng dụng của FCT là thay đổi kích thước của ảnh, bao gồm sự phóng to và sự thu nhỏ ảnh. Chúng ta sẽ chấp nhận rằng một ảnh phóng to dùng FCT thì sẽ không có gì khác so với một ảnh phóng to dùng FFT, trong đó ta dùng các thuộc tính vốn có của FFT của ảnh. Toàn bộ ý tư ởng là ta sẽ chia tần số lấy mẫu bên trong với 2 và như vậy sẽ tăng gấp đôi khoảng cách tần số. Khi FCT của một khối giảm rất nhanh kể từ điểm tần số (0,0), chúng ta có thể nhân đôi khoảng cách tần số bằng cách thêm vào các điểm 0. Điều này làm cho chúng ta giảm đư ợc một nửa tần số lấy mẫu b ên trong và tăng gấp đôi kích thước của ảnh. Vì vậy trong tương lai, kỹ thuật truyền hình phải sử dụng kỹ thu ật ảnh số, thì tính chất này có thể giúp cho ta tạo ra đư ợc các tivi có m àn ảnh rộng. Sự thu nhỏ thực hiện bằng cách bớt đi các giá trị của tần số cao. Chương trình sau đ ây sẽ phóng to của một ảnh. Chương trình này yêu cầu FCT của một ảnh và kích thước của các khối trên ảnh gốc. Kết quả chạy chương trình này là một ảnh có kích thư ớc gấp đôi. Chương trình 13.8 "IFCT2DX.C". Chương trình phóng to ả nh gấp đôi dùng 2 -D FCT. /*Program 13.8 "IFCT2DX.C". Program for image doubling using the 2-D FCT. The 2-D FCT of the image is the input file.*/ /* This program is for carrying out the inverse of the 2-D Fast Cosine Transform. It doubles the size of the image at the same time. */ #define PI 3.14159 361
  6. #include #include #include #include #include #include void IFCT(float *, unsigned int *, float *, int , int ); void bit_reversal(unsigned int *, int , int ); void WTSINV(float *,int, int); void main() { int m,N,i,j,k1,k2,NB,NS,N1,NB1,m1,NT,NT1,k; float *x,*C,**w; unsigned int *L; double nsq; FILE *fptri,*fptro; char file_name[14]; float *buffi; unsigned char *buffo; clrscr(); printf ("This program is for the inverse 2-D FCT. \n" ) ; printf("It doubles the size of the image at the same time."); printf("\nEnter name of input file --- > " ) ; scanf("%s",file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("\nNo such file exists.\n"); exit(1); } nsq=(double)filelength(fileno(fptri)); /*--------------------- Assume image is square. -----------------------*/ N=(int)sqrt(nsq/sizeof(float)); m=(int)(log10((double)N)/log10((double)2.0)); k=1; for(i=0;i
  7. k
  8. { for(k1=0;k1
  9. trị từ 0 đến 255. Tuy vậy, chúng ta không bao giờ để ý đến các giá trị này. Lý do là các giá trị n ày bản thân nó không có ý nghĩa gì cả. Cái mà chúng ta thật sự quan tâm là biểu diễn dư ới dạng nhị phân của giá trị cư ờng độ sáng tín hiệu lấy mẫu. Tất cả các bít biểu diễn khoảng của tín hiệu chói. Nếu tín hiệu chói có giá trị trong khoảng từ giá trị nhỏ nhất yL cho đ ến giá trị lớn nhất yu, thì hàm lượng tử hoá sẽ chia tín hiệu ra thành N miền và gán cho m ỗi miền một giá trị nh ị phân như trong h ình 13.14. Sự biểu diễn n ày không có ý nghĩa gì về mặt vật lý, và chức năng của sự biểu diễn n ày, như chúng ta muốn, chỉ dùng trong lĩnh vực xử lý tín hiệu số. Tất cả các tín hiệu số này gọi là đ iều mã xung (Pulse Code Modulated - PCM). Để có thể thực sự thấy giá trị các mức xám chúng ta cần lượng tử hoá ngược. Trong b ước này, các giá trị nhị phân biểu d iễn một độ chói cụ thể. Các bước thực sự của quá trình này biểu diễn trong hình 13.15. Trong lĩnh vực tương tự và lĩnh vực số quá trình này gọi là chuyển đổi từ tương tự sang số (A/D) và chuyển đổi từ số sang tương tự (D/A). Trong các ứng dụng như trường hợp biến đổi cosin 2 -D thì có một chút khác biệt. Cái m à chúng ta cần làm trong trường hợp n ày là biến đổi từ một tập hợp các dấu phẩy động sang một tập hợp các bít nhị phân và ngược lại. Biểu vì biến đổi ngược của lượng tử hoá là biến đổi từ nhiều vào một, nên quá trình này không th ể tiến h ành một cách thông thường được. May mắn thay, có một số ph ương pháp đ ể lượng tử hoá và lượng tử hoá ngược. Chúng ta sẽ nghiên cứu các phương pháp này ở phần dư ới đây. Dạng nhị phân. Dạng thập phân. YU N-1 11111111 dN N-2 11111110 d N-1 . . . . . . . . . . . . . . Khoảng tín hiệu. . . . . . . . . . . . . . . d5 4 00000100 d4 00000011 3 d3 00000010 2 d2 YL 1Lượng tử hoá. 0000001 0 Hình 13.14 d1 00000000 0 d di { i= 0,...,1} là các mức chia. 365
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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