1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tài liệu xử lý ảnh

18 223 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

10 X ảnh Quote: - Thông thường xử ảnh lập trình ngơn ngữ thuộc h ọ C…, đơn giản ngơn ng ữ hỗ trợ trỏ (pointer) nhằm truy cập trực ti ếp ô nh ớ, giúp trình x ảnh nhanh thay truy cập cách gián tiếp - Mục đích xử ảnh: + Tăng cường, phục hồi, nâng cao chất lượng ảnh + Trích lọc thơng tin từ ảnh - Các phép xử thường áp dụng ảnh nhị phân, ảnh mức xám - Có miền xử chính: + Khơng gian + Tần số - Có loại xử chính: + Xử điểm ảnh + Xử lân cận + Xử toàn cục (thường xử miền tần số) - Những kiến thức liên quan: + Không gian màu RGB + Cơ ảnh số + Cách biểu diễn ảnh số + Độ phân giải ảnh, màu + Ngơn ngữ lập trình PHẦN XỬ TRÊN MIỀN KHÔNG GIAN Chuyển đổi 1.1 Sử dụng phương thức Set-GetPixel - Thông thường ảnh xử ảnh mức xám (một lớp màu), ảnh tr ắng đen ( ảnh nh ị -phân) - Vậy để chuyển ảnh màu ảnh mức xám hay ảnh nhị phân? … - Như bạn biết + Một ảnh mức xám có nghĩa là: điểm ảnh ảnh bi ểu di ễn b ằng m ột s ố bit = 2^8=256 giá trị từ tối tới sáng + Một ảnh nhị phân: điểm ảnh biểu diễn số bit = 2^1=2 giá tr ị t ối sáng + Ảnh màu đương nhiên tổng hợp từ màu R-G-B Ví dụ: - Để chuyển ảnh màu ảnh xám có cơng thức sau: a O(x,y)=( IR(x,y) + IG(x,y) + IB(x,y)) /3 Với: x,y tạo độ điểm ảnh IR thành phân màu đỏ màu I(x,y) IG thành phân màu xanh màu I(x,y) IB thành phân màu xanh dương màu I(x,y) O(x,y): mà đầu ra, I(x,y) màu đầu vào b O(x,y)= IR(x,y) * 0.287 + IG(x,y) * 0.599 + IB(x,y) * 0.114 Ví dụ 1: Sử dụng cơng thức b cho ví dụ sau: Code: private Bitmap ToGray(Bitmap bm) { Bitmap bitmap = new Bitmap(bm); int x, y; Color c; Byte gray; for (y = 0; y < bm.Height - 1; y++) { for (x = 0; x < bm.Width - 1; x++) { c = bm.GetPixel(x, y); gray =Convert.ToByte(c.R * 0.287 + c.G * 0.599 + c.B * 0.114); bitmap.SetPixel(x, y, Color.FromArgb(gray, gray, gray)); } } return bitmap; } Kết thử nghiệm sau: - Đối với ảnh nhị phân ta kiểm tra giá trị màu 255 đếm số điểm ảnh có mức xám i Ví dụ: Tính H[x] cho ảnh xám Code: int x,y; int [ H=new int[255]; for(y = 0;y ảnh tối : Kéo tổ chức đồ trái (Các phép toán tổ chức đồ ta tìm hiểu phần sau) - Vẽ tổ chức đồ: Code: private Bitmap HistogramGray(Bitmap bm, int[ h) { //Tinh H[x] int x, y; for (y = 0; y < bm.Height - 1; y++) { for (x = 0; x < bm.Width - 1; x++) h[bm.GetPixel(x, y).R] += 1; } //Phân bố lại khích với pictureBox int max = h[0]; for (int j = 1; j < 255; j++) if (max < h[j]) max = h[j]; //'Vẽ int Height=100; Bitmap bmHistogram = new Bitmap(256, 100); Graphics gp = Graphics.FromImage(bmHistogram); gp.FillRectangle(new Pen(Color.Black).Brush, new Rectangle(0, 0, bmHistogram.Width, bmHistogram.Height)); int n; for (int i = 0; i < 255; i++) { n = (h * Height) / max; gp.DrawLine(new Pen(Color.Gray), i, 100, i, 100 - n); } return bmHistogram; } - Chép code vào project để kiểm tra Bạn cải ti ến giải thuật cho ảnh màu t ốc độ xử Một số phép toán tổ chức đồ - Trong phần vào phép xử tổ chức đồ - Như biết, tổ chức đồ đặt trưng quan trọng ảnh, dựa vào t ổ ch ức đồ có th ể nh ận dạng sơ ảnh, có kết luận ảnh: ảnh sáng, tối, độ tương phản th ấp, cao… Với đó, có số phép xử sau: + Trượt tổ chức đồ + Căng tổ chức đồ + Sửa chữa tổ chức đồ + San lấp tổ chức đồ 2.1 Trượt tổ chức đồ Mục đích: làm tăng giảm cường độ xám ảnh O(x,y) = I(x,y) + n n < : trượt ảnh bên trái => ảnh tối n > : trượt ảnh bên phải => ảnh sáng Chú ý: Kết O(x,y) > 255 < bạn cần ý để set lại giá tr ị Code: private Bitmap HisToGramStep(Bitmap bm, int n) { Bitmap bitmap=new Bitmap(bm); int x, y; Color c; for( y = 0;y 0) n < : thu hẹp chân tổ chức đồ => giảm độ tương phản ảnh n > : mở rộng chân tổ chức đồ => tăng độ tương phản ảnh Code: private Bitmap HisToGramStretch(Bitmap bm, int n) { if (n

Ngày đăng: 22/11/2017, 20:23

TỪ KHÓA LIÊN QUAN

w