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, để p r rvà p z zlà hàm mật độ
Trang 1gotoxy(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);
gotoxy(1,2);
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;
Trang 2for(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"
Trang 3Hì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
Trang 4xá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, để p r (r)và p z (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
p r T s
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
p z G v
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à:
) ( )
G (4.25)
r
p
) ( )
( (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
r F r T G
z (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 i n r
T
1 ) ( )
( (4.28)
z
i
m i n z
G
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
Trang 5hợp rời rạc, dẫn đến khó có thể đạt được các giá trị của r và z để T (r)đúng bằng G (z) 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 (z T r G z
G (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 T (r)và G (z) 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 ( ) ( ) (z T r G z
G
G(z )
r1 r z1
z T(r)
G(z)
G(z 1 )
r 1 r z 1
z T(r)
T(r 1 )
Trang 660
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 T (r)và G (z) vì thế chúng cung cấp cùng khoảng động của các mức xám Chú ý rằng T (r)và )
(z
G 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 ( ) ( )
T T
T i n r
T
r
i o
(4.31)
255 ) 0 ( ) 255 (
) 0 ( ) ( )
G G
G i n z
G
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
2
2 / 2 ) ( )
h (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
H
L, ,
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
j 1
p(z)
Trang 7Hì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( L
j
j y
2 Với 0 z x j
) tan(
) (
L z
z z
p
và với x j zm
j j j
j
x m
y h z
) (
3 Tính:
) tan(
255 25
) tan(
1 1
H k k
H k
y x
m y
4 Với mzx k
k k k
k
m x
h y z
) (
và với x k z 255
) 255 ( 255 )
x
y z
p
k
k
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 0 z m
Trang 8R
m
h z
255 ) (
Tham số H, H,m 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 H H mh1.0thì 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
)
p z zz (4.34) Hàm chuyển đổi được cho bởi
r
p r
r
0 min 1ln 1 () (4.35) Hàm Rayleigh:
min 2
) (
2
2 min
)
p
z z
(4.36)
Hàm chuyển đổi được cho bởi
2 1
0
2 min
) ( 1
1 ln
2
r
p
r r
(4.37)
p z (z)
h
0 m 255 z
Trang 9Hàm hyperbolic (căn bậc 3):
3 / 1 min 3
/ 1 max
3 / 2 3
1 ) (
z z
z z
p z
(4.38)
Hàm hyperbolic (logarit)
ln( ) ln( )
1 )
(
min
z z z
p z
(4.40)
Hàm chuyển đổi được cho bởi
r
p r
r r
) (
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ế p r (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
và / 1 073 150 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
Trang 10Hì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