Tải bản đầy đủ (.doc) (9 trang)

BÁO CÁO XỬ LÝ ẢNH Đề Tài: Biến đổi màu, phát hiện biên

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 (227.58 KB, 9 trang )

Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
TẬP ĐOÀN ĐIỆN LỰC VIỆT NAM
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO XỬ LÝ ẢNH
Đề Tài: Biến đổi màu, phát hiện biên
Giáo viên hướng dẫn: Nguyễn Hữu Quỳnh
Nhóm sinh viên thực hiên: Đàm Thị Mai
Chu Thị Thái Hà
Lớp : C6 Tin

Hà nội 10 / 2009
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
Lời Nói Đầu
Xử lý ảnh là một lĩnh vực đang được quan tâm và đã trở thành một môn học
chuyên nghành của sinh viên hệ kỹ sư, hệ cử nhân nghành công nghệ thông tin,
cũng như một nghành kỹ thuật khác trong các trường Đại Học Kỹ Thuật. Ngày
nay, có hàng trăm các ứng dụng xử lý ảnh khác nhau nhưng không phải ứng
dụng nào cũng cung cấp đầy đủ các tính năng và miễn phí. Chẳng có điều thần
kỳ gì ở trong việc cắt cúp. Đó chỉ là quyết định mang tính cảm giác chủ yếu dựa
vào phán đoán mang tính sáng tạo của nhiếp ảnh gia. Ấy nhưng thường cũng có
một số yếu tố có thể mang ra thảo luận một cách khách quan.Dưới đây là một
phần mềm xử lý ảnh với tính năng biến đổi ảnh là:
Biến đổi màu
Phát hiện biên
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
I. 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ý ả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 ứng dụng xử lý ảnh 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ố phép biến đổi 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 2 phép
biến đổi ảnh cơ sở bao gồm: Chuyển đổi ảnh, phát hiện biên
Dưới đây là giao diện chính của chương trình:
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ý.
Thủ tục load ảnh lên from giao diện người dùng
private void File_Load(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = "c:\\" ;
openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg
files (*.jpg)|*.jpg|All valid files (*.bmp/*.jpg)|*.bmp/*.jpg";
openFileDialog.FilterIndex = 2 ;
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
openFileDialog.RestoreDirectory = true ;
if(DialogResult.OK == openFileDialog.ShowDialog())
{
m_Bitmap =
(Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);
this.AutoScroll = true;
this.AutoScrollMinSize = new Size ((int)
(m_Bitmap.Width * Zoom), (int)(m_Bitmap.Height * Zoom));
this.Invalidate();
}
}
Lưu ảnh: Là chức năng cho phép lưu trữ ảnh sau khi xử lý
Thủ tục lưu ảnh
private void File_Save(object sender, System.EventArgs e)
{

SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = "c:\\" ;
saveFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg
files (*.jpg)|*.jpg|All valid files (*.bmp/*.jpg)|*.bmp/*.jpg" ;
saveFileDialog.FilterIndex = 1 ;
saveFileDialog.RestoreDirectory = true ;
if(DialogResult.OK == saveFileDialog.ShowDialog())
{
m_Bitmap.Save(saveFileDialog.FileName);
}
}
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
1.Biến đổi màu
- Chuyển ảnh màu thành ảnh xám
- Đổi màu ảnh theo ý muốn
Giao diện from chọn màu ảnh theo màu 3 màu đỏ, xanh lá, xanh biển. Người sử
dụng phải nhập các giá trị theo mong muốn sau đó nhấn nút Đồng ý để thu được
ảnh
Thủ tục thay đổi màu ảnh
private void Filter_Color(object sender, System.EventArgs e)
{
ColorInput dlg = new ColorInput();
dlg.red = dlg.green = dlg.blue = 0;
if (DialogResult.OK == dlg.ShowDialog())
{
m_Undo = (Bitmap)m_Bitmap.Clone();
if(BitmapFilter.Color(m_Bitmap, dlg.red, dlg.green,
dlg.blue))
this.Invalidate();
}

}
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
Thủ tục chuyển màu đổi ảnh theo ý muốn với 3 màu đặc trưng: đỏ, xanh lá,
xanh biển.
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
public int red
{
get
{
return (Convert.ToInt32(Red.Text, 10));
}
set{Red.Text = value.ToString();}
}
public int green
{
get
{
return (Convert.ToInt32(Green.Text, 10));
}
set{Green.Text = value.ToString();}

}
public int blue
{
get
{
return (Convert.ToInt32(Blue.Text, 10));
}
set{Blue.Text = value.ToString();}
}
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
2.Phát hiện biên
a. Phương pháp phát hiện biên trực tiếp
Phương pháp này nhằm làm nổi biên dựa vào sự biến thiên về giá trị độ sáng
của điểm ảnh. kỹ thuật chủ yếu dùng phát hiện biên ở đây là kỹ thuật đạo hàm.
Nếu lấy đạo hàm bậc nhất của ảnh ta có phương pháp Gradient; nếu lấy đạo
hàm bậc hai ta có kỹ thuật Laplace. Hai phương pháp trên được gọi là phương
pháp dò biên cục bộ. ngoài ra người ta còn sử dụng phương pháp “đi theo
đường bao”: dựa vào nguyên lý qui hoạch hoạt động và được gọi là phương
pháp dò biên tổng thể.
b.Phương pháp phát hiện biên gián tiếp:
Nếu bằng cách nào đấy , ta phân được ảnh thành các vùng thì đường phân ranh
giữa các vùng đó chính là biên. Việc phân vùng ảnh thường dựa vào kết cấu
(texture) bề mặt của ảnh.
Cũng cần lưu ý rằng, kỹ thuật dò biên và phân vùng ảnh là hai bài toán đối ngẫu
của nhau. Thực vậy, dò biên để thực hiện phân lớp đối tượng và một khi đã
phân lớp xong có nghĩa là đã phân vùng được ảnh. Và ngược lại, khi phân vùng,
ảnh đã phân lập được thành các đối tượng, ta có thể phát hiện được biên.
Phương pháp dò biên trực tiếp tỏ ra khá hiệu quả vì ít chịu ảnh hưởng của nhiễu.
Song nếu sự biến thiên độ sáng không đột ngột, phương pháp này lại kém hiệu
quả. Phương pháp dò biên gián tiếp tuy có khó cài đặt song lại áp dụng khá tốt

khi sự biến thiên độ sáng nhỏ. Biên là vấn đề chủ yếu trong phân tích ảnh vì
các đặc điểm trích chọn trong quá trình phân tích để tiến tới hiểu ảnh chủ yếu
dựa vào biên. Sử dụng phương pháp phát hiện biên trực tiếp theo Laplace.
Thủ tục phát hiện biên
private void OnEmbossLaplacian(object sender, System.EventArgs e)
{
m_Undo = (Bitmap)m_Bitmap.Clone();
if(BitmapFilter.EmbossLaplacian(m_Bitmap))
this.Invalidate();
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà
}
private void OnEdgeDetectQuick(object sender, System.EventArgs
e)
{
m_Undo = (Bitmap)m_Bitmap.Clone();
if(BitmapFilter.EdgeDetectQuick(m_Bitmap))
this.Invalidate();
}
II. Kết Luận
Trong phần mà chúng em đã trình bày ở trên thì, một bước quan trọng khi
phát triển một hệ xử lý ảnh trong một môi trường ứng dụng thực tế là xác định
được mục tiêu tổng quát thật rõ ràng. Thứ hai là xác định những hạn chế do môi
trường ứng dụng đặt ra. Thứ ba là thu lượm thông tin về ảnh cần xử lý.
Khi đã cho mục tiêu tổng thể, các điều hạn chế và thông tin về lớp ảnh
cần phải xử lý thì sẽ có nhiều phương pháp khác nhau để giải được bài toán.
Chúng em hy vọng rằng qua phần chúng em đã trình bày ở trên, độc giả
có thể đọc thêm nhiều tài liệu về các chuyên mục, và các ứng dụng nghiên cứu
lý thuyết vào những vấn đề thực tiễn, cũng như về các tiến bộ mới trong nghiên
cứu và triển khai thuộc lĩnh vực này.
III. Tài Liệu Tham Khảo

[1]. Nhập Môn Xử Lý Ảnh ……… Nguyễn Thanh Thủy
[2].Giáo Trình Xử Lý Ảnh …………………………………Nguyễn Văn Ngô
[3].Giáo Trình Xử Lý Ảnh…………………………………ĐH Back Khoa
HẾT
Báo Cáo Xử Lý Ảnh Đàm Thị Mai_Chu Thị Thái Hà

HẾT

×