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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 792,5 KB

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