Xem mẫu
- KHOA CÔNG NGHỆ
******************************
ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO BÀI THỰC HÀNH
MÔN: XỬ LÝ ẢNH
LỚP: K10T3
1. Đỗ Văn Bình
2. Phạm Hùng Thế
3. Thạch Hoàng Việt
Hµ Néi 6 - 2004
- BÁO CÁO BÀI THỰC HÀNH MÔN XỬ LÝ ẢNH
Tên b ài tập
XÂY DỰNG MỘT SỐ THUẬT TOÁN SƠ CẤP TRONG XỬ LÝ ẢNH
1. Chức nă ng của chương trình
Xu ất phát từ ý tưởng xâ y dựng một chương trình xử lý các phép to án cơ bản
trong xử lý ảnh. Chương trình này chỉ là b ước khởi đ ầu cho một sự tích hợp tất
cả các thuật toán cơ sở vào trong một chương trình, đ ây sẽ là một trong những
chương trình giúp người sử dụng hiểu rõ hơn về một số thuạt toán cơ sở trong
xử lý ảnh.
Trong khu ôn khổ của một bài tập thực hành, ở đây xin được trình b ày 4 thu ật
toán cơ sở b ao gồm: Giãn nở ảnh (làm b éo ), Ăn mòn ảnh (làm gầy), Xoay ảnh
và tìm xương.
Giao diện to àn cảnh của chương trình sẽ đ ược hiển thị như hình d ưới đây:
Hình 1
Dưới đây sẽ trình bày chi tiết các thuật to án trên.
1
- Load ảnh và lưu ả nh sau khi xử lý
Load ảnh: Đây là chức năng đầu tiên của chương trình cho phép load một ảnh
bitmap 256 mầu đ ể xử lý.
Lưu ảnh: Là chức năng cho phép lưu trữ ảnh sau khi xử lý dưới d ang 1 tệp
tin.
Sự giãn nở ảnh (Dilation)
Ảnh ở Hình 1 là ảnh trước khi xử lý (Ảnh gốc, ảnh tiền xử lý). Sau khi thực
hiện chức năng giãn nở (Dilation) ta thu được ảnh như hình d ưới đây:
Hình 2: Ảnh thu được sau khi thực hiện ch ức năng g iãn n ở lần 2
Chú y: Số lần giãn nở trong một ch ừng mực nào đó có th ể coi là không hạn
ch ế
Sự ăn mòn ảnh (Erosion)
Ảnh ở Hình 1 là ảnh trước khi xử lý (Ảnh gốc, ảnh tiền xử lý). Sau khi thực
hiện chức năng ăn mòn ảnh (Erosion) ta thu đ ược ảnh như hình dưới đây:
2
- Hình 3: Ảnh thu được sau khi thực h iện chức năng ăn mòn lần 2
Chú y: Số lần thực h iện chức năng ăn mòn trong một chừng mực nào đó có
thể coi là không hạn chế (Cho tới khi ảnh bị ăn mòn h ết).
Xoay ảnh (Rotation)
Ảnh ở Hình 1 là ảnh trước khi xử lý (Ảnh gốc, ảnh tiền xử lý). Bây giờ chúng
ta hãy t hực hiện chức năng xoay ảnh. Người sử d ụng phải nhập vào giá trị của
góc xoay (Dưới dạng radian). Ví d ụ sau đ ây chúng ta hãy nhập vào giá trị góc
xoay là 0.3 như hình d ưới đây:
Sau khi bấm nút lệnh OK ta thu đ ược ảnh như hình d ưới đây:
3
- Hình 4: Ảnh thu được sau khi thực h iện chức năng xoay ảnh với góc 0.3
radian
Tìm xương (Bone finding)
Ảnh ở Hình 1 là ảnh trước khi xử lý (Ảnh gốc, ảnh tiền xử lý). Sau khi thực
hiện chức năng tìm xương (Bone finding) ta thu đ ược ảnh như hình dưới đây:
4
- Hình 5: Ảnh thu được sau khi thực h iện chức năng Bone finding.
2. Các thuật toán áp dụng trong chương trình
Thuật toán làm giãn nở ảnh
Thuật toán ăn mòn ảnh
Thuật toán xoay ảnh
Thuật toán tìm xương
3. Một số đoạn code á p dụng các thuật toán trên
Thủ tục làm giãn nở ảnh
/////////////////////////////////////////////////////////////////////////////
//void IMAGE::Dilation(): lam beo chu
// mot diem nhan thanh 8 diem xung quanh
/////////////////////////////////////////////////////////////////////////////
void IMAGE::Dilation(int M){
int i,j,k,z;
char TAM=2;
char*pCot,*pPic,*pDong,*pCot1,*pDong1;
int n,m2;
pPic=(char*)GlobalLock(hPic);
5
- m2=M*2+1;
n=M+M*MaxX;
for(pDong=pPic,i=0;i
- for(pCot1=pDong1,z=0;z
- if(tongCotY0) denTa-=MaxX;
pCot1[0]=pCot[denTa];
}else pCot1[0]=TRANG;
tongCotX+=cos1;
tongCotY+=sin1;
if(tongCotX>=1){
pCot++;
xCot++;
tongCotX-=1.0;
}//if
else if(tongCotX=1){
tongCotY-=1.0;
pCot+=MaxX;
yCot++;
}//if
else if(tongCotY=1){
tongDongX-=1.0;
pDong++;
xDong++;
}//if
else if(tongDongX=1){
tongDongY-=1.0;
pDong+=MaxX;
yDong++;
}//if
else if(tongDongY
- }//if
}//for
// copy data
// MoveMemory(pPic,pPic1,MaxX*MaxY);
GlobalUnlock(hPic);
GlobalUnlock(hPic1);
GlobalFree(hPic);
hPic=hPic1;
return 1;
}
Thủ tục tìm x ương ả nh
///////////////////////////////////////////////////////////////////////////////////////////////
//int IMAGE::ThinChar9N(): lam manh chu voi do phuc tap Tmax=9N
// (N la tong so diem anh)
// tra lai: 0: loi cap phat
// 1 : khong loi
// do phuc tap: -do cac bien ban dau: T1= N (duyet qua anh tim diem bien)
// -Danh dau bien T2=2N (moi diem den duyet
- for( pCot=pDong,i=0;i
nguon tai.lieu . vn