Một số khái niệm cơ bản về ảnh (mức xám, ảnh
màu, lân cận)
Các khái niệm cơ bản về xử lý ảnh (điểm, cục bộ,
toàn cục)
Các xử lý không phụ thuộc tọa độ: contrast stretch.
Cân bằng histogram trên ảnh xám thông qua tuyến
tính hóa hàm CDF của các mức xám.
Minh họa cân bằng histogram trêm miền [0,1] và
[0,255]
60 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1564 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Xử lý ảnh số - Một số xử lý cơ bản trên miền không gian, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỘT SỐ XỬ LÝ CƠ
BẢN TRÊN MIỀN
KHÔNG GIAN
NGÔ QUỐC VIỆT
TPHCM-2014
1. Phân loại và các định dạng ảnh
2. Lân cận, tính liên thông, vùng và biên
3. OpenCV - Ví dụ đầu tiên
4. Các toán tử
5. Histogram và các xử lý
2 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Kiến thức cơ bản về các loại ảnh
Một số khái niệm lân cận, liên thông thường dùng
trong xử lý ảnh
Xử lý ảnh mức xám thông qua các hoạt động trên
histogram
3 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Điểm ảnh hay còn gọi là pixel (picture element, pels,
image elements) được xem như là dấu hiệu hay
cường độ sáng tại một toạ độ trong không gian của
đối tượng.
Ảnh được xem như là một tập hợp các điểm ảnh.
Khi được số hoá, được biểu diễn là ma trận 2 chiều
a[i][j] trong đó mỗi phần tử có một giá trị nguyên
hoặc là một véc tơ cấu trúc màu
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 4
Mỗi pixel chứa một màu (hoặc mức xám)
5 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
value(x, y, z, , t)
màu độ sâu z
thời gian t
6
Lưới các pixel,
mỗi pixel chứa
một màu
Ảnh màu có nhiều giá trị cho mỗi
pixel; Ảnh monochrome có 1 giá trị
mỗi pixel
p = (r,c) là vị trí pixel. r: row; c: column
I( p) = I(r,c) giá trị của pixel tại p
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Mức xám (gray level): Mức xám là kết quả sự mã
hoá tương ứng một cường độ sáng của mỗi điểm
ảnh với một giá trị số-kết quả của quá trình lượng
hoá
Các thang giá trị mức xám thông thường: 16, 32,
64, 128, 256 (Mức 256 là mức phổ dụng. Lý do: từ kỹ
thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức
xám: Mức xám dùng 1 byte biểu diễn: 256 mức xám,
tức là từ 0 đến 255)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 7
8
Ảnh Số bit/pixel Số màu
Ảnh đen trắng 1 2
Ảnh xám (gray scale) 8 256
Ảnh RGB 24 2563
Ảnh 32 bit
(true color+độ sâu)
32 2564
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Các hoạt động có thể chia thành các loại
Trên điểm (pixel): giá trị điểm ảnh output chỉ phụ thuộc
một giá trị điểm ảnh tại cùng vị trí của ảnh input
Cục bộ (local): giá trị điểm ảnh output tại vị trí nhất định
(m, n) chỉ phụ thuộc vào giá trị các điểm ảnh lân cận của
điểm ảnh có cùng vị trí (m, n) trên ảnh input.
Toàn cục (global): giá trị điểm ảnh output tại vị trí nhất
định (m, n) phụ thuộc vào toàn bộ pixel trên ảnh input.
Nhằm tạo ra ảnh mới b[m,n] từ ảnh đầu vào
a[m,n] sao cho đạt một số mục tiêu tăng cường
chất lượng ảnh hoặc đáp ứng các yêu cầu phân
tích.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 9
Điểm, cục bộ, và toàn cục
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 10
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 11
Một điểm ảnh p tại tọa độ (x, y)
có
4-lân-cận-ngang-và-dọc của p
(x+1, y), (x-1, y), (x, y+1), (x, y-1)
4-lân-cận-chéo (Diagonal) của p
(x+1, y+1), (x+1, y-1),
(x-1, y+1), (x-1, y-1)
8-lân-cận của p: là sự kết hợp của
N4(p) và ND(p)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 12
x
x p x
x
x x
p
x x
ND(p)
N4(p)
x x x
x p x
x x x
N8(p)
4-liền-kề: Hai điểm ảnh p và q là 4-liền-kề nếu q
thuộc tập N4(p).
8-liền-kề: Hai điểm ảnh p và q là 8-liền-kề nếu q
thuộc tập N8(p).
Ví dụ:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 13
0 1 1
0 1 0
0 0 1
Các điểm ảnh
0 1 1
0 1 0
0 0 1
8-liền-kề
0 1 1
0 1 0
0 0 1
4-liền-kề
#include "stdafx.h“
#include
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
// Open the file.
IplImage *img = cvLoadImage("building.jpg");
if (!img) {
printf("Error: Couldn't open the image file.\n");
return 1;
}
// Display the image.
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
cvShowImage("Image:", img);
// Wait for the user to press a key in the GUI window.
cvWaitKey(0);
// Free the resources.
cvDestroyWindow("Image:");
cvReleaseImage(&img);
return 0;
}
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 14
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 15
Input image Input image
Enhancement
technique
Miền không gian Miền tần số
Xử lý trực tiếp trên pixel Xử lý trên biến đổi Fourier của ảnh
Thay đổi giá trị không phụ thuộc vào tọa độ các
điểm ảnh
Tăng giảm độ sáng, thống kê tần suất, biến đổi
tần suất , âm bản, biến đổi log, v.v.
Sử dụng biểu đồ tần suất, còn gọi là histogram.
Tần suất mức xám g của ảnh I là số điểm ảnh có giá
trị g. Histogram là biểu đồ các mức xám có trong
ảnh. Ví dụ cho ảnh I, histogram h(g) của I là:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 16
“Trắng” chuyển thành ”đen” và ngược lại
Ảnh âm của ảnh I có [0,L-1] mức xám được xác định
bởi, với r là mức xám cụ thể:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 17
rLs 1
int main(int argc, char **argv) {
const char* imagename = argc > 1 ? argv[1] : "lena.jpg";
IplImage* img = 0;
int h, w, step, channels, i, j, k;
uchar *data;
img = cvLoadImage(imagename, CV_LOAD_IMAGE_UNCHANGED);
h = img->height; w = img->width;
step = img->widthStep;
channels = img->nChannels;
data = (uchar *)img->imageData;
//transforming to negative
for(i=0; i<h; i++)
for(j=0; j<;w; j++)
for(k=0; k<channels; k++)
data[i*step+j*channels+k] = 255 - data[i*step+j*channels+k];
cvNamedWindow("OpenCV", CV_WINDOW_AUTOSIZE);
cvShowImage("OpenCV", img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 18
Nhằm giãn các mức xám thấp của ảnh input có
được mức xám cao hơn. Nhằm làm cho bớt tối.
Mức xám s mới được xác định bởi
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 19
)1log( rcs
Power-law: , hoặc
Với c, là hằng dương
Dùng cho trường hợp r=0.
Thay đổi giá trị sẽ tạo ra nhiều hiệu ứng. Còn gọi là
hiệu chỉnh gamma (gamma correction) trên ảnh.
Gamma correction rất quan trọng trong tạo ảnh
trung thực trên màn hình.
Sinh viên đọc thêm “Digital Image Processing-3rd
Edition” của Rafael C. Gonzalez từ 130-137. Thực hiện
với openCV những biến đổi này.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 20
crs )( rcs
Gamma correction với gamma = 1, 0.7, 0.4, 0.1
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 21
Bằng cách tăng miền động (dynamic range) mức
xám của ảnh.
Ánh xạ miền mức xám sang miền mới theo nguyên
tắc nhất định. r: mức xám cũ; s: mức xám mới. (ri, si)
điều khiển dáng của biến đổi.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 22
Nguồn: Digital Image Processing-Rafeal C. Gonzalez)
Nếu r1=r2 và s1=0, s2=L-1 thì chuyển sang ảnh nhị
phân.
Nếu (r1, s1)=(rmin, 0) và (r2, s2)=(rmax, L-1) thì kéo dãn
miền xám của ảnh sang toàn bộ miền xám [0, L-1]
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 23
r1=r2=(rmax-rmin)/2 (r1, s1)=(rmin, 0) và (r2, s2)=(rmax, L-1)
Lát cắt vùng xám (gray-level slicing): làm sáng một
miền xám xác định trên ảnh. Mong muốn làm sáng
một số đối tượng trên ảnh. Tăng mọi mức xám
trong miền cụ thể, và làm giảm các mức xám khác.
Lát cắt bit-plane (bit-plane slicing): xử lý trên từng
bit của điểm ảnh (giả sử dùng 8-bit cho điểm ảnh
gray scale). Có thể dùng trong image compression.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 24
Hình dạng histogram thể hiện độ sáng (brightness)
của ảnh
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 25
Hình dạng histogram thể hiện độ tương phản
(contrast) của ảnh
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 26
Dùng để tăng độ tương phản toàn cục của ảnh.
Những vùng có tương phản thấp sẽ được cải thiện
Thay đổi cường độ xám của từng pixel để có được
ảnh mới có histogram chuẩn hơn.
Cần một hàm biến đổi trên mức xám.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 27
Ảnh I được gọi là cân bằng "lý tưởng" nếu với mọi
mức xám g, g’ ta có h(g) = h(g’). Nghĩa là các mức
xám trong ảnh có số lượng pixel “tương đương”
nhau.
Nghĩa là:
với ni là số pixel có mức xám i, và nj số pixel có mức
xám j, n là tổng số pixel có trong ảnh.
Tuy nhiên, không tự nhiên để cân bằng “lý
tưởng”Tạo ra một phân phối xác suất trên biến
ngẫu nhiên mức xám và chuẩn hóa phân phối này
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 28
ji
n
n
n
n ji ,
Cân bằng histogram là phương pháp tiếp cận để xác
định một hàm biến đổi T(.) giá trị độ sáng phân bố
đồng đều (uniformly distributed) trong khoảng [0,1].
Giả sử ảnh đầu vào có độ sáng liên tục [0, 1], với r=0
cho màu đen và r = 1 cho màu trắng
Cần xác định một hàm biến đổi s = T(r), trên
histogram ảnh đầu vào
Kỹ thuật “cân bằng histogram” có thể cải thiện
chất lượng ảnh tự động mà không cần làm thủ
công với chức năng co/giãn mức xám.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 29
Phần trình bày sau chỉ là một cách cân bằng
histogram.
T(r) là hàm đơn điệu tăng ánh xạ từ [0,1] vào [0,1] (miền
mức xám đã chuẩn hóa).
Chọn T đơn điệu tăng đảm bảo cho pixel có cường độ
cao hơn pixel khác vẫn giữ nguyên tính chất đó trong
ảnh đầu ra
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 30
Dựa trên lý thuyết xác suất với pin(r) và pout(s) lần
lượt là hàm mật độ mức sáng trên ảnh đầu vào và
đầu ra
Mục tiêu là thực hiện biến đổi sao cho pout(s) “tiến
tới” phân phối chuẩn. Nghĩa là đạt cực đại ở giữa
lược đồ và giảm đều về hai bên.
Nếu pin(r) và T(r) biết trước, và r T
-1(s) tăng đơn
điệu, theo lý thuyết xác suất có thể viết :
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 31
)(1
)()(
sTr
inout
ds
dr
rpsp
Một cách để nâng cao chất lượng ảnh là tìm T(.) sao
cho mức sáng của ảnh đầu ra có phân bố đồng đều
trên [0, 1]. Nghĩa là, ảnh ouput có mức xám “như
nhau”.
Xét biến đổi (đây chỉ là một trong các loại hàm
dùng cho histogram)
Đây là tổng của hàm mật độ (cumulative
distribution function -CDF ) của pin (r).
Suy ra
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 32
10,)()(
0
rdwwprTs
r
in
)(rp
dr
ds
in
Histogram ảnh đầu ra được xác định
Hàm mật độ là đồng đều cho mọi ảnh đầu vào
Sử dụng hàm biến đổi CDF trên ảnh histogram đầu
vào, ta có được ảnh đầu ra với mức xám đồng đều
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 33
10,11
)(
1
)()( )(
)(
1
1
s
rp
rpsp sTr
sTrin
inout
Xét ảnh xám {x} và đặt ni là số lần xuất hiện của mức
xám i. Xác suất xuất hiện pixel có mức xám i trong
ảnh là (n là tổng pixel, L là tổng mức xám, px(i) là
histogram cho mức xám I đã chuẩn hóa [0, 1].
Đặt hàm tổng mật độ là
Mong muốn xây dựng biến đổi y =T(x) tạo ra ảnh {y},
sao cho cdf là tuyến tính trên miền giá trị. Nghĩa là:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 34
Li
n
n
ixpip ix 0,)()(
i
j
xx jpicdf
0
)()(
iKicdf y )( )()( xcdfxTy x }min{})min{}.(max{' xxxyy
Cho ảnh N mức xám. Hãy cân bằng histogram về M
mức xám (M có thể khác N)
B1: tính pin(k) cho N mức xám
B2: tính CDF cho các N mức xám.
B3: lập bảng thay thế: T(k)=round(s(k)*(M-1))
B4: với mỗi điểm ảnh có mức xám k, thay thế bằng
điểm ảnh có mức xám T(k)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 35
k
i
in kpks
0
)()(
Xét ảnh 8 mức xám kích thước 64 x 64 với các mức
sáng (0, 1, , 7). Mức sáng chuẩn hóa là (0, 1/7, 2/7,
, 1). Histogram chuẩn hóa như sau
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 36
Sử dụng hàm sau để xác định:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 37
k
j
jinkk rprTs
0
)()(
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 38
Biến đổi mức sáng giữa ảnh cũ và mới
Ảnh output có histogram
Nhận xét: Histogram của ảnh đầu ra chỉ là xấp xỉ
không hoàn toàn đồng đều.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 39
IN 0 1/7 2/7 3/7 4/7 5/7 6/7 7/7
OUT 1/7 3/7 5/7 6/7 6/7 1 1 1
Tạo mảng chứa thông tin histogram
CvHistogram* hist = cvCreateHist(1, &hist_size,
CV_HIST_ARRAY);
Tính histogram trên ảnh xám
cvCalcHist( &gray_img, hist, 0, NULL );
Chuẩn hóa histogram
cvNormalizeHist(hist, 255);
Cân bằng histogram
cvEqualizeHist(img, result)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 40
I = imread('Image_0_01.tif');
J = histeq(I);
imshow(I);
figure, imshow(J);
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 41
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 42
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 43
m_equalization
Xét ảnh
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 44
Histogram của ảnh trên (đếm pixel có cùng mức
xám)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 45
CDF của histogram là:
Min trong ảnh là 52 và max là 154. Cdf được chuyển
sang miền [0, 255] bởi
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 46
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 47
)1(
)(
)(
min
min L
cdfMxN
cdfvcdf
roundvh
Xét ảnh ví dụ
Ví dụ, pixel mức xám 78
255
163
1)(
)(
vcdf
roundvh
182255
163
146
)78(
roundh
Ảnh cân bằng histogram là:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 48
Cho ảnh I kích thước mxn=N.
Gọi new_levels là số mức xám mong muốn của ảnh
được cân băng histogram
Đặt:
Đặt:
là số điểm ảnh có mức xám thấp hơn hay bằng g.
Xác định hàm f: gf(g), sao cho :
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 49
levelsnew
N
tb
_
g
i
ihgt
0
)()(
1
)(
,0,0max()(
tb
gt
roundgf
Chọn new_levels = 4
Ảnh sau khi cân bằng là
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 50
void histeq(IplImage* src, IplImage* dst) {
IplImage* hsv, * h, * s, * v;
if (src->nChannels == 3) {
hsv = cvCreateImage(cvGetSize(src), 8, 3);
h = cvCreateImage(cvGetSize(src), 8, 1);
s = cvCreateImage(cvGetSize(src), 8, 1);
v = cvCreateImage(cvGetSize(src), 8, 1);
cvCvtColor(src, hsv, CV_BGR2HSV);
cvSplit(hsv, h, s, v, NULL);
cvEqualizeHist(v, v);
cvMerge(h, s, v, NULL, hsv);
cvCvtColor(hsv, dst, CV_HSV2BGR);
}
else if (src->nChannels == 1)
cvEqualizeHist(src, dst);
if (hsv) cvReleaseImage(&hsv);
if (h) cvReleaseImage(&h);
if (s) cvReleaseImage(&s);
if (v) cvReleaseImage(&v);
}
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 51
#include "cv.h“
#include "highgui.h“
int main(int argc, char** argv)
{
IplImage* src = cvLoadImage(argc == 2 ? argv[1] :
"img/lena.jpg", 1);
IplImage* dst = cvCreateImage(cvGetSize(src), src->depth,
src->nChannels);
histeq(src, dst);
cvShowImage("src", src);
cvShowImage("dst", dst);
cvWaitKey(0);
return 0;
}
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 52
Xác định hình dáng của histogram và thực hiện nâng
cấp ảnh thay vì sử dụng cân bằng histogram. Ví dụ sử
dụng histogram của ảnh khác thực hiện cho ảnh đang
xét.
Được gọi là “histogram matching” hay “histogram
specification”
Có thể được dùng để chuẩn hóa hai ảnh
Ý tưởng: Cho hai ảnh, tham chiếu và ảnh đích, tính
histogram của chúng. Tính cumulative functions của hai
histogram-gọi là F1() và F2(). Với mỗi mức xám G1, tìm
mức xám G2 sao cho F1(G1) và F2(G2). Hàm histogram
matching: M(G1) = G2. Áp hàm M() lên mỗi pixel của
ảnh tham chiếu.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 53
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 54
Target
Reference
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 55
Histogram của hai ảnh
CDF của hai ảnh
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 56
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 0 0.05 0.15 0.23 0.29 0.38 0.42 0.46 0.55 0.62 0.66 0.72 1
0.04 0.17 0.30 0.42 0.54 0.63 0.70 0.76 0.79 0.88 0.91 1 1 1 1 1
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 57
Adjusted
Refrence
0 0 0 0 1 2 3 4 6 6 7 8 9 10 11 15
0 0 0 0 0 1 1 2 3 3 3 4 5 5 6 15
Hist equal
Hist match
Ảnh kết quả sau khi thực hiện histogram matching
trên ảnh ‘to be adjusted’ với histogram lấy từ ảnh
‘reference’
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 58
Hãy viết chương trình OpenCV nhằm thực hiện:
Chuyển ảnh xám sang trắng đen
Co giãn độ tương phản
Làm sáng đối tượng thông qua kỹ thuật gray-level
slicing
Hiển thị các bit plane của ảnh xám sang các cửa sổ
khác
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 59
Một số khái niệm cơ bản về ảnh (mức xám, ảnh
màu, lân cận)
Các khái niệm cơ bản về xử lý ảnh (điểm, cục bộ,
toàn cục)
Các xử lý không phụ thuộc tọa độ: contrast stretch.
Cân bằng histogram trên ảnh xám thông qua tuyến
tính hóa hàm CDF của các mức xám.
Minh họa cân bằng histogram trêm miền [0,1] và
[0,255].
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 60
Các file đính kèm theo tài liệu này:
- xla_baigiang_02_0548.pdf