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 2 P19

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

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

Tôi sẽ cung cấp cho bạn các chương trình con dùng cho loại vỉ mạch này, nếu bạn có một loại vỉ mạch khác thì không phải là khó khăn lắm để viết lại các sửa đổi cho phù hợp. Chương trình mà tôi đưa ra trong chương này được viết bằng Turbo C.

Chủ đề:
Lưu

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

  1. FillPibRect(0,0,0,511,255,0); printf("Enter name of file containing colored image-->"); scanf("%S",file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("file %s does not exist.\n"); exit(1); } for(i=0;i
  2. void main() { int R,G,B,i,j,buffi[512],yt; char ch,buffo[256],file_name[15]; float y; FILE *fptri,*fptro; clrscr(); printf("Enter name of file containing color image- ->"); scanf("%s",file_name); fptri=fopen(file_name, "rb"); if(fptri==NULL) { printf("File %s does not exist",file_name); exit(1); } yt=wherey(); again: gotoxy(1,yt); delline(); printf("Enter name of file to store BW image-- >"); scanf("%s",file_name); if(access(file_name,0)==0) { printf("File exists. Wish to overwrite? (y or n)-->"); while(((ch=tolower(getch()))!='y')&&(ch!='n')); putch(ch); switch(ch) { case 'y': break; case 'n': gotoxy(1,yt); delline(); goto again; } } fptro=fopen(file_name,"wb"); for(i=0;i
  3. fread(buffi,1024,1,fptri); for(j=0;j> 5; R=(0x7C00 & buffi[j]) >> 10; y=R+4.5907*G+0.0601*B; ch=(char)(y*1.45568+0.5); /* ch=Y/Ymax*255.0 i.e. scale range between 0 to 255. */ /* Y=0.30*R+0.59*G+0.11*B; ch=(char)(Y*8.225806+0.5); */ buffo[j>>1]=ch; } fwrite(buffo,256,1,fptro); } fclose(fptri); fclose(fptro); } Hệ số nhân Y trong chương trình 11.5 được cho theo : 255.0 (1  4.5907  0.0601)  32.0 Biến đổi này cho số mức nằm trong khoảng giữa 0 và 255. Chú ý rằng cho vỉ mạch PIB, số mức lớn nhất cho mỗi màu chính là 32. Một biểu thức nội suy cho độ sáng dùng để biến đổi tín hiệu truyền hình màu sang tín hiệu đen trắng: Y = 0,30R + 0,59G + 0,11B (11.4) Biểu thức n ày dựa theo cảm giác của mắt vào ba màu chính. Để kiểm tra chương trình 11.5 chúng ta sử dụng ảnh "IHABCOL.IMG". Kết quả dùng biểu thức (11.3) giới thiệu trong hình 11.7. Biểu thức (11.4) luôn cho một kết quả đúng, còn biểu thức (11.3) cho ta một ảnh mức xám có độ sáng tốt hơn. Để hoàn thiện kiến thức cơ bản của chúng ta về ảnh màu chúng tôi sẽ cung cấp cho bạn một chương trình dùng cho vỉ mạch PIB để hiển thị ba màu (đỏ, lục, lam) dưới dạng ảnh màu. Một ảnh sẽ được nạp vào vỉ mạch PIB trước tiên khi sử dụng LOADPIB. 250
  4. Hình 11.7 ảnh mức xám của ảnh "IHABCOL.IMG". Chương trình 11.6 “RGBCOMP.C”. Hiển thị một trong 3 màu chính của ảnh màu trên PIB. /*Program 11.6 "RGBCOMP.C". Program for displaying one of the three primary Image components of a color image on the PlB board. The color Image should be loaded first on the PIB board.*/ /* Program for producing r or g or b component image for a color image loaded on the PIB board. */ #include #include #include void main() { unsigned color,ch; int y; char file_name; clrscr(); printf("\nwhich image component would you like to see\n"); 251
  5. printf("Press r for red \n g for green\n b for blue\\n"); while(((ch=getch())!='r')&&(ch!='g')&&(ch!='b')); switch(ch) { case 'r': color=0xFC00; break; case 'g': color=0x83E0; break; case 'b': color=0x811F; } for(y=0;y
  6. H ình 11.8 Lọc riêng biệt ba màu chính. Bài tập 11.1 1 . Lập một chương trình lọc ảnh màu dùng sơ đồ hình 11.8. Bộ lọc có thể là kiểu FIR hoặc là kiểu IIR, và không nh ất thiết phải có cùng đáp ứng tần số, ví dụ, tín hiệu đỏ có thể lọc qua bộ lọc thông cao, tín hiệu lam qua bộ lọc thông thấp, và màu lục đi qua bộ lọc thông tất. 2 . Kiểm tra chương trình trên ảnh "AUTHOR.IMG" đã có sẵn trên đĩa. Dùng bộ lọc FIR thông cao được thiết kế theo kiểu xấp xỉ với tần số c= 1.0 rad/đơn vị cho tất cả ba màu thành phần. 11.7.2 Lọc riêng ảnh tín hiệu chói Một tính chất của hỗn hợp màu (xem phần 11.2) là một điểm ảnh m àu thì độc lập với độ chói của ảnh trên một phạm vi rộng. Dựa trên tính chất này, ta có thể lọc một ảnh màu mà không làm thay đổi các màu của nó. Vì vậy mà bộ lọc chỉ cho ra tín hiệu chói. Ảnh đã được lọc tín hiệu chói có thể dùng để sửa lại mức của ba m àu chính mà không thay đổi tỷ lệ R:G:B tại tất cả các điểm. Chương trình là cách giải thích tốt nhất cho sơ đồ hình 11.8. Cũng cần phải nói rằng các màu chính lấy ra đã được sửa lại mức tại tất cả các điểm bằng hàm khuyếch đại, h àm này rút ra bằng chia tín hiệu chói lấy ra cho các điểm m à ta đã lấy tín hiệu chói vào. Nếu như trong phương pháp trước, ba bộ lọc cho ba màu chính có đáp ứng tần số độc lập, thì phương pháp này sẽ cho kết quả gần như độc lập với phương pháp trước. Bài tập 11.2 Lập một chương trình C lọc ảnh màu dùng sơ đồ hình 11.9. Chú ý nếu Yi = 0.0, thì tín hiệu ra khỏi bộ lọc có R0 = G0 = B0 = 0.0. Kiểu bộ lọc có thể là FIR ho ặc là IIR. 11.8 Lựa chọn hệ số sửa lại sắc màu và lọc Một vấn đề khó khăn trong xử lý ảnh màu là sửa lại sắc màu của một màu đặc biệt mà không làm ảnh hư ởng các màu còn lại. Một phương pháp hay dùng đó là sửa lại các màu chính đến mức chính xác có thể, cùng lúc cân b ằng các màu còn lại để hình ảnh có màu tự nhiên. Mặc dù, độ chính xác là sự cân bằng tất cả các sắc màu sao cho hình ảnh có m àu sắc tự nhiên b ằng các thay đổi ba sắc m àu chính. Phương pháp lựa chọn thay đổi sắc m àu của các màu đặc biệt mà không ảnh hưởng cân bằng m àu với phần còn lại của ảnh. Phương pháp này gọi là thay đ ổi sắc màu có lựa chọn. Nó có khả năng làm tăng lên ho ặc giảm đi một màu đ ặc biệt bằng cách dùng bộ lọc m àu lựa chọn. Câu hỏi đặt ra là: Làm thế nào chúng ta có th ể nhận ra sắc m àu đ ặc biệt? Câu trả lời cho vấn đề này dựa theo biểu đồ màu. Một lớp m àu được lấy ra bằng cách chia 253
  7. biểu đồ m àu thành các miền màu, mỗi miền chứa một m àu đặc biệt (xem hình 11.10). Trong hình 11.10, G = lục, Y = vàng, ST = skin tone(amber), R = đỏ, M = đỏ tươi, B = lam, và C = xanh nước biển. Các đường thẳng (từ l0 đ ến l6) chia thành các màu dựa trên cảm giác của con người. Biểu thức của các đường thẳng này: y  0.333 xi  0.333  x  0.333 yi  0.333 (11.5) ở đây Pi(xi,yi) và {i = 0 đến 6} là điểm cho trong hình. Biểu thức cho các đường này có th ể cho dư ới dạng (11.6) y  mi x  ci Y Ro  R o Y1 Ảnh đã Y Go  G o lọc. Sinh ra Yo Y1 Bộ lọc. Y1 Y1=R + 4.5907G + 0.0601B Y Bo  B o Y1 H ình 11.9 Phương pháp ch ỉ lọc tín hiệu chói. y G (0.2757, 0.7147) G P0(0.408, 0.585) l0 P (0.479, 0.517) P6 Y l1 1 l2 P2(0.532, 0.465) (0.229, 0.424) l6 (0.333, 0.333) l5 R(0.735, 0.265) l4 l3 R P5 W (0.208, 0.285) M P3(0.501, 0.160) B P4(0.337, 0.086) B (0.167, 0.009) ình 11.10 Phân chia màu sắc trong biểu đồ m àu. H x ở đ ây mi và ci {i= 0 đ ến 6} cho trong bảng 11.2. Miền xung quanh điểm (0.333, 0.333), biểu diễn cho m àu trắng trong sơ đồ màu, có th ể xấp xỉ bằng một vòng tròn có bán kính r  0,03. Chương trình cho phân chia lớp m àu, tính giá trị R, G, B cho một điểm theo: 254
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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