Tải bản đầy đủ (.pdf) (10 trang)

Giáo trình xử lý ảnh y tế Tập 1a P7 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (706.08 KB, 10 trang )


55

gotoxy(1,3);
printf("File exists. Wish to overwrite? (y or
n) >");
while(((ch=tolower(getch()))!='y')&&(ch!='n'));
putch(ch);
switch(ch)
{
case 'y':
ind=1;
break;
case 'n':
gotoxy(1,3);
printf( " ");
gotoxy(1,2);
printf(" ");
gotoxy(1,2);
printf("Enter file name >");
scanf("%s",file_name);
ind=access(file_name,0);
}
}

fptr2=fopen(file_name,"wb");
nsq=(double)filelength(fileno(fptr));
printf("\nIs this a square image ? (y or n) ");
while(((ch=tolower(getch()))!='y')&&(ch!='n'));
putch(ch);
switch(ch)


{
case 'y':
image_length=image_width=sqrt(nsq);
break;
case 'n':
printf("Enter image width > ");
scanf("%d",&image_width);
image_length=(int)(nsq/image_width);
}
printf("\n image size= %d x
%d",image_length,image_width);
true_length=0.95*image_length;

/* Generate Histogram.*/
for(i=0;i<256;i++)
histo[i]=0;

56

for(i=0;j<true_length;i++)
for(j=0;j<image_width;j++)
histo[getc(fptr)]++;
/* Generate CDF. */
s[0]=histo[0];
for(i=1;i<256;i++)
s[i]=s[i-1]+histo[i];
/* scaling*/
range=(float)(s[255]-s[0]);
for(i=1; i<256; i++)
s[i]=(int)((float)(s[i]-s[0]))*255.0/range;

/* Mapping into a uniform histogram.*/
rewind(fptr);
k=0 ;
for(i=0; i<image_length; i++)
for(j=0; j<image_width; j++)
{
ch=s[getc(fptr)];
buff[k]=(unsigned char)ch;
k++;
if((k==MAX)||(ch==EOF))
{
for(n=0;n<k;n++)
putc((int)buff[n],fptr2);
k=0;
}
}
fclose(fptr);
fclose(fptr2);
printf("\n\nDONE.");
}

Để kiểm tra việc san bằng lược đồ mức xám chúng ta xem xét ảnh trên hình
4.12a. Đây là ảnh của một người tương phản với nền sáng. Khi chụp ảnh này
đã không dùng đèn để giảm độ sáng của nền. ảnh sau khi san bằng mức xám
được cho trên hình 4.12b. Dễ dàng nhận thấy được sự thay đổi so với ảnh gốc.
ảnh cung cấp cho bạn thử nghiệm được cung cấp sẵn trên đĩa kèm theo với tên
"ISLAM.IMG".


57



Hình 4.12 (a) Ảnh gốc dùng cho san bằng lược đồ mức xám.


Hình 4.12 (b) Ảnh sau khi san bằng lược đồ mức xám.
4.5.3 Thay đổi lược đồ mức xám
Kỹ thuật san bằng lược đồ mức xám đưa ra một phương pháp trong đó có
thể nâng cao chất lượng ảnh qua việc làm bình đẳng tầm quan trọng giữa các
mức xám. Tuy nhiên, có thể trong một vài ứng dụng người ta cần nâng cao
mức xám hay một khoảng mức xám nào đó. Vì vậy, cần phải ánh xạ ảnh mức

58

xám để lược đồ mức xám của nó tuân theo một phân phối đặc biệt. Chúng ta
thực hiện điều này bằng cách nào, hãy quay lại một chút với ảnh mức xám liên
tục, để )(rp
r
và )(zp
z
là hàm mật độ xác xuất tương ứng của ảnh gốc và ảnh
ánh xạ riêng biệt. Để chuyển đổi ảnh gốc thành ảnh có lược đồ mức xám các
mức xám đồng đều chúng ta dùng hàm ánh xạ CDF, ví dụ:



r
r
dprTs
0

)()(


(4.23)
Nếu ảnh ánh xạ đã có sẵn, thì các mức xám của nó có thể được ánh xạ sang
phổ lược đồ mức xám đồng đều qua CDF như sau:



z
z
dpzGv
0
)()(

(4.24)
Bởi vì ảnh ánh xạ vừa nhận được từ ảnh gốc, thì sau đó nó sẽ ánh xạ vào
cùng ảnh có lược đồ mức xám được làm bằng nhau (đồng bộ). Đó là:

)()( rTzG


(4.25)
hay
 

z r
rz
dpdp
0 0

)()(

(4.26)
Trong đó r và z là hai biến tương ứng thể hiện mức xám của ảnh gốc và ảnh
ánh xạ. Cái ta cần là thu được z như là một hàm trực tiếp của r, nghĩa là:

)())((
1
rFrTGz 


(4.27)
Để có được giải pháp theo công thức giải tích (4.26) cho trường hợp chung
có thể là khó khăn hoặc không thể làm được. Tuy nhiên, giải pháp đồ thị là rất
có thể, và hình 4.13 minh hoạ thủ tục cho giải pháp này. Với một mức xám
được chọn r
1
thu được T(r
1
). Chiếu T(r
1
) lên G(z) thu được mức xám ánh xạ z
1
.
Bởi vì trong thực tế chúng ta thường xử lý ảnh rời rạc chứ không phải ảnh
liên tục, nên CDF sẽ được viết lại như sau:





r
i
o
inrT
1
)()(

(4.28)




z
i
m
inzG
0
)()( (4.29)
ở đây n
0
(i) và n
m
(i) là các mảng mà phần tử thứ i của nó chứa tổng số mức
xám, có giá trị i trong ảnh gốc và ảnh ánh xạ. Sự xấp xỉ nảy sinh trong trường

59

hợp rời rạc, dẫn đến khó có thể đạt được các giá trị của r và z để )(rT đúng
bằng )(zG . Tuy nhiên có thể tìm một giá trị của z sao cho với bất kỳ r biểu
thức sau đây được thoả mãn:

)1()()1(




zGrTzG (4.30)
(xem hình 4.14.)








Hình 4.13 Biểu diễn đồ thị của công thức (4.26).







Hình 4.14 Biểu diễn đồ thị của trường hợp mẫu.
Do vậy, dựa trên các vấn đề thảo luận ở trên và hình 4.14 chúng ta có thể
thực hiện từng bước theo thủ tục sau để xác định ánh xạ giữa r và z.

1. Quy định lược đồ mức xám cho ảnh ánh xạ.
2. Tính CDF )(rT và )(zG riêng rẽ sử dụng công thức (4.28) và (4.29)
3. Cho r = 0 đến 255 ( bước nhảy bằng 1) thực hiện:

a. Tìm z sao cho
)1()()(



zGrTzG
b. Lưu giữ trong mảng F, tại vị trí r, giá trị bằng của z; nghĩa là F(r) = z.

Thủ tục trên mang lại mảng ánh xạ

))(()(
1
rTGrFz



G(z
)

r
1
r z
1
z

T(r)

G(z)
G(z
1

)

r
1
r z
1
z

T(r)
T(r
1
)


60

Kết quả này có thể được dùng để chuyển đổi ảnh gốc sang một ảnh có mức
xám xấp xỉ với mức xám đã quy định.
Với thủ tục trên để thực hiện chúng ta cần chia khoảng )(rT và )(zG vì thế
chúng cung cấp cùng khoảng động của các mức xám. Chú ý rằng )(rT và
)(zG là những hàm ánh xạ chúng ánh xạ ảnh gốc và ảnh chuyển đổi thành ảnh
san bằng mức xám. Vì thế, công thức (4.28) và (4.29) sẽ được viết lại như sau:
255
)0()255(
)0()(
)(
0
TT
Tin
rT

r
i
o





(4.31)
255
)0()255(
)0()(
)(
0
GG
Gin
zG
z
i
m





(4.32)

Việc quy định lược đồ mức xám. Có một kỹ thuật chuẩn để sinh ra lược đồ
mức xám cho ảnh chiếu. Những kỹ thuật này được mô tả sau đây.


Phân phối Gauss. Phân phối cho rằng

22
2/)(
)(



z
ezh
(4.33)
Trong đó  = kỳ vọng toán học hay trị trung bình.
 = sai phương.
Chú ý rằng h(z) giảm khoảng 90 phần trăm giá trị tối đa của nó tại

073.1/

z

Do đó,  biểu hiện bề rộng của phân phối.
Tham số  và  có thể được điều chỉnh cho đến khi đạt được kết quả mong
muốn trên ảnh ra. Cần chú ý rằng thực hiện phép chiếu các lược đồ mức xám
khác nhau phụ thuộc vào ảnh, bởi vậy cần phải tăng cường ảnh.

Tuyến tính từng đoạn (Piecewise linear). Một cách tiếp cận xen kẽ linh
động hơn phương pháp Gaussian là sử dụng các đoạn thẳng để biểu diễn phân
phối mong muốn. Hình 4.15 đưa ra phương pháp như vậy. Các tham số
m
HL
,,


và h có thể được thay đổi đến tận khi thu được ảnh mong muốn.
Hình 4.15 có thể được trình bày như sau:





L


H

0 m
255
z
h

k

j

1

p(z)


61





Hình 4.15 Hàm tuyến tính từng đoạn.
1. Tính:

)tan(
1
1
1
L
j
m
y



)tan(
Ljj
yx


2. Với
j
xz 0

)tan(
)(
L
z
z

zp


và với mzx
j


jj
j
j
z
yxz
xm
yh
zp 


 )()(
3. Tính:

)tan(255
25
)tan(
1
1
Hkk
H
k
yx
m

y







4. Với
k
xzm 

kk
k
k
z
yxz
mx
hy
zp 


 )()(
và với
255 zx
k

)255(
255
)( z

x
y
zp
k
k
z



Phương pháp xen kẽ trên, chỉ sử dụng hai đoạn thẳng, được chỉ trên hình
4.16.
Với mz


0

L
L
z
z
m
h
zp




)(

Và với 255



zm

62


R
R
z
z
m
h
zp





 )255(
255
)(
Tham số m
HH
,,

và h có thể được điều chỉnh xấp xỉ với phân phối mong
muốn. Ví dụ, nếu chúng ta đặt 0.1 hm
HH


thì ta sẽ thu được phân bố
đồng đều.












Hình 4.16 Xấp xỉ hai đoạn thẳng.
Các dạng phân phối khác. Có một số dạng phân phối khác cũng được sử
dụng để nâng cao chất lượng ảnh. Các dạng này được cho dưới đây. Với
những dạng này chúng ta có thể có được một giải pháp gần nhất với công thức
(4.26).
 Hàm mũ:

min
)(
min
)( zzezp
zz
z






(4.34)
Hàm chuyển đổi được cho bởi











r
r
dprr
0
min
)(1ln
1

(4.35)
 Hàm Rayleigh:

min
2
)(
2

min
2
2
min
)( zze
zz
zp
zz
z















(4.36)
Hàm chuyển đổi được cho bởi

2
1
0

2
min
)(1
1
ln2


































r
r
dp
rr

(4.37)
p
z
(z)



L



H

h

0 m 255 z



63

 Hàm hyperbolic (căn bậc 3):

3/1
min
3/1
max
3/2
3
1
)(
zz
z
zp
z



(4.38)
 Hàm hyperbolic (logarit)

 
)ln()ln(
1
)(
minmax
zzz
zp

z


(4.40)

Hàm chuyển đổi được cho bởi









r
r
dp
r
r
rr
0
)(
min
max
min

(4.41)
Thực tế khi thực hiện công thức trên chúng ta sẽ thay thế )(rp
r

bằng h(i).
Bây giờ là lúc chúng ta phát triển các chương trình biến đổi lược đồ mức
xám.

Bài tập 4.3
1. Viết chương trình C để thay đổi lược đồ mức xám trên cơ sở hàm tuyến
tính mức độ bộ phận hình 4.15. Kiểm tra chương trình trên ảnh
"ISLAM.IMG".
2. Tương tự như câu 1, nhưng xuất phát từ các công thức (4.35), (4.37),
(4.39), và (4.41).
3. Lập chương trình cho phép bạn chọn hàm san bằng, gaussian, mũ,
Rayleigh, hyperbolic (căn bậc 3), hoặc hyperbolic (logarith), sau đó ánh xạ
ảnh thích hợp.

Hình 4.17 là ảnh "ISLAM.IMG" sau khi sử dụng phân phối gaussian với
125



150073.1/


. Chú ý rằng ảnh này có hiển thị nhiều chi tiết hơn
ảnh san bằng mức xám trên hình 4.12b. Tuy nhiên, bạn sẽ thử nghiệm với  và
 khác nhau để phát hiện ra ưu điểm của phương pháp này.


64



Hình 4.17 Ảnh xử lý dùng phân phối Gauss để biến đổi lược đồ mức
xám.
4.6 Lọc trung vị
Trung vị M của một tập hợp số được xác định sao cho một nửa các giá trị
trong tập lớn hơn M hoặc một nửa các giá trị nhỏ hơn M. Lọc trung vị trong
ảnh được áp dụng bởi đầu tiên chọn một cửa sổ có kích thước N, ở đây N
chẵn. Cửa sổ này hoặc miền cung cấp sẽ được quét qua ảnh. Điểm trung tâm
của miền cung cấp, tại bất kỳ nơi nào trong ảnh, được thay thế bằng trung vị
của các giá trị điểm của các miền lân cận. Lọc trung vị làm cho điểm ảnh trở
nên nổi trội hơn so với các điểm xung quanh. Nó loại trừ ảnh hưởng của các

×