BáoCáoXử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ÁOCÁOXỬ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áoCáoXử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áoCáoXử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áoCáoXử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áoXử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áoXử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áoXử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áoXử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áoXửLý Ảnh Đàm Thị Mai_Chu Thị Thái Hà HẾT . Ả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 . 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. 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 đỏ,