Giáo trình xử lý ảnh y tế Tập 2 P12
Số trang: 8
Loại file: pdf
Dung lượng: 248.92 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Giải thuật nội suy vuông là thao tác sao chép trong đónhững điểm ảnh về cơ bản được sao chép vào những vị trí rỗng. Có thể thuđược toán tử nội suy tam giác nhờ sự kết hợp hai toán tử nội suy vuông,
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 2 P12/* This program is for eN1arging images using 2 -Diir filters. The filters coefficients can be obtainedfrom iird.exe or iirditer.exe. */#include #include #include #include #include #include #include #include void main() {FILE *fptri,*fptro,*fptrt;unsigned char *buff,**wx,ch,*temp1;double nsq;float **wy,**a,**b,*temp2,*bufft;float max,min,scale,tt;int n,m,image_length,image_width,i,j,N,N1,ind;int true_length,true_width,yt,k;char file_name[14];clrscr();printf(Enter file name for image-->);scanf(%s,file_name);fptri=fopen(file_name, rb);if(fptri==NULL) { p rintf(No such image file exists. ); exit(1); }nsq=(double)filelength(fileno(fptri));printf(Is image length equal to image width ? (y or n)-->);while(((ch=getche())!=y)&&(ch!=n));switch(ch) { case y : image_length=image_width=(int)sqrt(nsq); break; case n: printf( Enter image_width-->); scanf(%d,&image_width); 201 image_length=(int)(nsq/(float)image_width); }printf( Image size %dx%d. , image_length, image_width);printf ( Enter file name for filters coefficients--> ) ;scanf(%s,file_name);fptro=fopen(file_name,r);if(fptro==NULL) { p rintf( No such file exists. ); exit(1); }Hình 9.12 Bộ lọc nội suy đáp ứng tần số kích thước 2 2 thiết kế từ đáp ứng vuông với miền chuyển tiếp dốc và c = 1 .4.fscanf(fptro, %d,&N);printf(IIR filter has an order of %dx%d.,N,N);N1=N+1;/* Allocating memory space. */a=(float **)malloc(N1*sizeof(float *));for(i=0;ifor(i=0;i break; case n: gotoxy(1,yt+1);printf( ); gotoxy(1,yt);printf( ); gotoxy(1,yt); printf(Enter file name -->); scanf(%s,file_name); ind =access(file_name,0); } }fptro=fopen(file_name,wb);fptrt=fopen(temp.imq,wb+);/* Clearing input and output image transfer buffers. */for(i=0;i { wy[0][m]=(float)0.0; for(i=0;i }fwrite(buff,2*image_width,1,fptro); } fclose(fptri); fclose(fptro); fclose(fptrt), remove(temp.img); } Bài tập 9.4 Ch ạy thử chương trình 9.4 trên ảnh CAMEL.IMG và MAHER.IMG sửdụng: 1 . Bộ lọc IIR thông thấp đáp ứng vuông với c = /2.0. 2 . Bộ lọc thông thấp đối xứng tuần hoàn với c = /2.0. Đầu tiên dùng đáp ứng có miền chuyển tiếp dốc, và sau đó dùng hàmButterworth. So sánh kết quả với phương pháp FFT được mô tả trong chương7. Chú ý: Để thiết kế đ ược bộ lọc trước tiên b ạn cần chạy IMPULSE.EXEtheo IIRD.EXE. Với đáp ứng vuông bạn sẽ cần phải hoặc là thêm một sốthay đ ổi vào chương trình hoặc là viết một chương trình riêng để sinh và lưutrữ dữ liệu biên độ tần số trong một file. Ch ương trình IMPULSE.C cho phépđọc dữ liệu được sinh ra từ bên ngoài. Một chương trình mẫu để sinh ra dữ liệuphù hợp với IMPULSE.C được cho trong chương trình 9.5. Chương trình 9.5 “GEN-DATA.C”. Chương trình mẫu tạo tạo dữ liệuđáp ứng tần số cho “IMPULSE.C”./* Program 9.5 GEN-DATA.C. Sample program for generating frequency-response data for IMPULSE.C. */#define pi 3.141592654#include #include main(){int i,j,ii,jj,N,N1,kk;float Do,H;FILE *fptr; 206 char file_name[14];clrscr();printf ( Enter number of data points to be generated (e.g. 32x32)-->);scanf(%dx%d,&N1,&N1);printf(Enter file name for storing mag. response-->);scanf(%s,file_name);fptr=fopen(file_name,w);N=N1/2;printf ( Enter cut-off ( less than pi )-->);scanf(%f,&Do);kk=(int)((Do/pi)*(float)N);kk*=kk;H ình 9.13 Đáp ứng tần số của bộ lọc nội suy 2 2 từ đáp ứng hình vuông với m iền chuyển tiếp dốc và c = 1.4.fprintf(fptr,%d %d ,N1,N1);for(i=0;i else H=0.0; fprintf(fptr,%f ,H); } }fclose(fptr); } Trư ớc khi kết thúc chương này chúng ta sẽ thiết kế lại bộ lọc của h ình 9.12sử dụng thay cho bộ lọc FIR. Đáp ứng biên độ tần số của bộ lọc FIR kíchthước 5 5 sử dụng cửa sổ Blackmann đ ược chỉ trên hình 9.13. Rõ ràng là giảichuyển đổi có độ dốc hơn nhiều so với hình 9.12. Bộ lọc FIR 5 5 có 25 hệ sốso với 17 hệ số của bộ lọc FIR kích th ước 2 2. Mặc dù vậy bộ lọc FIR cónhiều lợi thế so với bộ lọc IIR, chúng linh động hơn và có bậc cao hơn nhiều.Vấn đề khó khăn của bộ IIR là độ ổn định không được bảo đảm, và pha tuyếntính thực sự là không có thể. Tuy nhiên, phương pháp được mô tả trongchương này, mặc dù không đ ảm bảo tính ổn định, nhưng dường như ổn địnhvới pha gần tuyến tính. Bài tập 9.5 Viết ch ương trình đ ể nhân đôi độ phân giải ảnh sử dụng bộ kiểu lọc FIR,dùng phương pháp được mô tả trong mục 9.8. Bài tập 9.6 ...
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 2 P12/* This program is for eN1arging images using 2 -Diir filters. The filters coefficients can be obtainedfrom iird.exe or iirditer.exe. */#include #include #include #include #include #include #include #include void main() {FILE *fptri,*fptro,*fptrt;unsigned char *buff,**wx,ch,*temp1;double nsq;float **wy,**a,**b,*temp2,*bufft;float max,min,scale,tt;int n,m,image_length,image_width,i,j,N,N1,ind;int true_length,true_width,yt,k;char file_name[14];clrscr();printf(Enter file name for image-->);scanf(%s,file_name);fptri=fopen(file_name, rb);if(fptri==NULL) { p rintf(No such image file exists. ); exit(1); }nsq=(double)filelength(fileno(fptri));printf(Is image length equal to image width ? (y or n)-->);while(((ch=getche())!=y)&&(ch!=n));switch(ch) { case y : image_length=image_width=(int)sqrt(nsq); break; case n: printf( Enter image_width-->); scanf(%d,&image_width); 201 image_length=(int)(nsq/(float)image_width); }printf( Image size %dx%d. , image_length, image_width);printf ( Enter file name for filters coefficients--> ) ;scanf(%s,file_name);fptro=fopen(file_name,r);if(fptro==NULL) { p rintf( No such file exists. ); exit(1); }Hình 9.12 Bộ lọc nội suy đáp ứng tần số kích thước 2 2 thiết kế từ đáp ứng vuông với miền chuyển tiếp dốc và c = 1 .4.fscanf(fptro, %d,&N);printf(IIR filter has an order of %dx%d.,N,N);N1=N+1;/* Allocating memory space. */a=(float **)malloc(N1*sizeof(float *));for(i=0;ifor(i=0;i break; case n: gotoxy(1,yt+1);printf( ); gotoxy(1,yt);printf( ); gotoxy(1,yt); printf(Enter file name -->); scanf(%s,file_name); ind =access(file_name,0); } }fptro=fopen(file_name,wb);fptrt=fopen(temp.imq,wb+);/* Clearing input and output image transfer buffers. */for(i=0;i { wy[0][m]=(float)0.0; for(i=0;i }fwrite(buff,2*image_width,1,fptro); } fclose(fptri); fclose(fptro); fclose(fptrt), remove(temp.img); } Bài tập 9.4 Ch ạy thử chương trình 9.4 trên ảnh CAMEL.IMG và MAHER.IMG sửdụng: 1 . Bộ lọc IIR thông thấp đáp ứng vuông với c = /2.0. 2 . Bộ lọc thông thấp đối xứng tuần hoàn với c = /2.0. Đầu tiên dùng đáp ứng có miền chuyển tiếp dốc, và sau đó dùng hàmButterworth. So sánh kết quả với phương pháp FFT được mô tả trong chương7. Chú ý: Để thiết kế đ ược bộ lọc trước tiên b ạn cần chạy IMPULSE.EXEtheo IIRD.EXE. Với đáp ứng vuông bạn sẽ cần phải hoặc là thêm một sốthay đ ổi vào chương trình hoặc là viết một chương trình riêng để sinh và lưutrữ dữ liệu biên độ tần số trong một file. Ch ương trình IMPULSE.C cho phépđọc dữ liệu được sinh ra từ bên ngoài. Một chương trình mẫu để sinh ra dữ liệuphù hợp với IMPULSE.C được cho trong chương trình 9.5. Chương trình 9.5 “GEN-DATA.C”. Chương trình mẫu tạo tạo dữ liệuđáp ứng tần số cho “IMPULSE.C”./* Program 9.5 GEN-DATA.C. Sample program for generating frequency-response data for IMPULSE.C. */#define pi 3.141592654#include #include main(){int i,j,ii,jj,N,N1,kk;float Do,H;FILE *fptr; 206 char file_name[14];clrscr();printf ( Enter number of data points to be generated (e.g. 32x32)-->);scanf(%dx%d,&N1,&N1);printf(Enter file name for storing mag. response-->);scanf(%s,file_name);fptr=fopen(file_name,w);N=N1/2;printf ( Enter cut-off ( less than pi )-->);scanf(%f,&Do);kk=(int)((Do/pi)*(float)N);kk*=kk;H ình 9.13 Đáp ứng tần số của bộ lọc nội suy 2 2 từ đáp ứng hình vuông với m iền chuyển tiếp dốc và c = 1.4.fprintf(fptr,%d %d ,N1,N1);for(i=0;i else H=0.0; fprintf(fptr,%f ,H); } }fclose(fptr); } Trư ớc khi kết thúc chương này chúng ta sẽ thiết kế lại bộ lọc của h ình 9.12sử dụng thay cho bộ lọc FIR. Đáp ứng biên độ tần số của bộ lọc FIR kíchthước 5 5 sử dụng cửa sổ Blackmann đ ược chỉ trên hình 9.13. Rõ ràng là giảichuyển đổi có độ dốc hơn nhiều so với hình 9.12. Bộ lọc FIR 5 5 có 25 hệ sốso với 17 hệ số của bộ lọc FIR kích th ước 2 2. Mặc dù vậy bộ lọc FIR cónhiều lợi thế so với bộ lọc IIR, chúng linh động hơn và có bậc cao hơn nhiều.Vấn đề khó khăn của bộ IIR là độ ổn định không được bảo đảm, và pha tuyếntính thực sự là không có thể. Tuy nhiên, phương pháp được mô tả trongchương này, mặc dù không đ ảm bảo tính ổn định, nhưng dường như ổn địnhvới pha gần tuyến tính. Bài tập 9.5 Viết ch ương trình đ ể nhân đôi độ phân giải ảnh sử dụng bộ kiểu lọc FIR,dùng phương pháp được mô tả trong mục 9.8. Bài tập 9.6 ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật xử lý hình ảnh xử lý tín hiệu cách xử lý hình ảnh tin học chuyên ngành chỉnh sửa hình ảnh trong y họcGợi ý tài liệu liên quan:
-
Bài giảng Tín hiệu và hệ thống - Hoàng Minh Sơn
57 trang 55 0 0 -
Giáo trình Tin học chuyên ngành: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh
93 trang 45 0 0 -
59 trang 36 0 0
-
Xử lý tín hiệu và lọc số (tập 2): Phần 1 - Nguyễn Quốc Trung
233 trang 33 0 0 -
Giáo trình xử lý ảnh y tế Tập 1b P18
7 trang 27 0 0 -
Giáo trình xử lý ảnh y tế Tập 1a P11
10 trang 27 0 0 -
66 trang 26 0 0
-
Giáo trình Matlab - Phan Thanh Tao
260 trang 25 0 0 -
Bài giảng Xử lý tín hiệu và mã hóa: Chương 1 - TS. Phạm Việt Hà
16 trang 25 0 0 -
Giáo trình Phương pháp tính và tin học chuyên ngành: Phần 1
124 trang 24 0 0