Tìm hiểu các phép biến đổi trên biểu đồ phân bố và thử nghiệm ứng dụng các phép xử lý histogram trên ảnh đa mức xám và ảnh màu 24 bit
Mỗi phép biến đổi dù với mục đích gì thì cũng cần áp dụng một cách mềm dẻo để đạt được mục đích tốt nhất.Ví dụ , xét trên phương diện cảm quan nghệ thuật chứ không phải phương diện công nghệ xử lý. Histogram là công cụ đắc lực nhưng không thay thế cảm nhận nghệ thuật của con người, nhất là những người luôn tìm kiếm sự phá cách trong nhiếp ảnh. Nếu người chụp cố tình ghi lại những khoảng tối của màn đêm hay khoảng tuyết trắng xóa thì histogram sẽ có những ngọn cao về trái hoặc về phải. Điều đó không có nghĩa là bức ảnh không đẹp.
22 trang |
Chia sẻ: lylyngoc | Lượt xem: 3287 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Tìm hiểu các phép biến đổi trên biểu đồ phân bố và thử nghiệm ứng dụng các phép xử lý histogram trên ảnh đa mức xám và ảnh màu 24 bit, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Báo Cáo Bài Tập Lớn
Xử Lý Ảnh
Đề Tài :Tìm hiểu các phép biến đổi trên biểu đồ phân bố và thử nghiệm ứng dụng các phép xử lý histogram trên ảnh đa mức xám và ảnh màu 24 bit.
1.Histogram là gì?
1.1.Định nghĩa :
Histogram là biểu đồ phân bố giá trị mức xám của một ảnh hoặc một vùng ảnh số(một số công cụ cho phép xem histogram của một vùng ảnh đã chọn)
Với ảnh đa mức xám,histogram là một biểu đồ cột duy nhất.Với trục hoành được chia thành 256 giá trị đô chói (i) và trục tung là tần xuất xuất hiện giá trị (i) trong ảnh tương ứng với 1 ma trận dữ liệu ảnh :
Tương tự ,ảnh màu có histogram là 3 biểu đồ cột thế hiên độ chói của ba màu cơ bản trên ảnh tương ứng với 3 ma trận dữ liệu ảnh .(Trong photo shop thì Histogram ảnh màu được kết hợp thành một biểu đồ duy nhất.)
–
Histogram máy Nikon
1.2 Cách tính:
Xét ma trận dữ liệu ảnh H(m,n)
Chạy I từ 0->255 và đếm số điểm ảnh có cùng mức xám i.
Code :tính H(x) cho ảnh xám
int H[]=new int[255];```````for(y = 0;y<bm.Height - 1;y++){for( x = 0;x<bm.Width - 1;x++){H[bm.GetPixel(x, y).R] += 1;}}
Sau khi thoát khỏi vòng lặp, mỗi phần tử trong mảng H là giá trị số lượng điểm ảnh tại mức xám của vị trí phần tử đó
2.Các phép biến đổi trên histogram và ứng dụng:
2.1 Trượt Histogram:
a.Lý thuyết :
Mục đích: làm tăng hoặc giảm cường độ xám của ảnhÝ tưởng :
O(x,y) = I(x,y) + nn ảnh tối hơnn > 0 : trượt ảnh về bên phải => ảnh sáng hơnChú ý: Kết quả của O(x,y) có thể > 255 hoặc < 0 vì vậy bạn cần chú ý để set lại 2 giá trị này.
Code :
private Bitmap HisToGramStep(Bitmap bm, int n){Bitmap bitmap=new Bitmap(bm);int x, y;Color c;for( y = 0;y= 0 )bitmap.SetPixel(x, y, Color.FromArgb(c.R + n, c.R + n, c.R + n));else if ((c.R + n) > 255)bitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255));else if ((c.R + n) < 0)bitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));}}return bitmap;}
b.Kịch bản :
Công cụ :PS Brightness(Photoshop->Image->Adjustments
->Brightness/contrast):
Ảnh đầu vào :
Nhập mức xám muốn tăng và có kết quả trực tiếp trên màn hình :
Ta làm tương tự với ảnh đa mức xám
->Kết quả : (sau khi tăng độ chói)
2.2Phép co dãn biểu đồ :
a.Lý thuyết :
Mục đích: làm thay đổi độ tương phản của ảnh .
Ý tưởng: Thông thường trong một số ảnh,các giá trị xám không phủ đều toàn bộ dải xám sẵn có mà chỉ tập chung vào một khoảng nhất định,điều này làm ảnh bị sáng quá,tối quá ,hoặc độ tương phản kém.Vì vậy giải pháp được đưa ra là kéo dãn biểu dải xám ra mức lớn nhất có thể.Ta có công thức sau:
Cụ thể :
Với Plow là ngưỡng dưới,Phigh là ngưỡng trên.
Code trên C:
private Bitmap HisToGramStretch(Bitmap bm, int n) {if (n = 0 )bitmap.SetPixel(x, y, Color.FromArgb(c.R * n, c.R * n, c.R * n));else if ((c.R * n) > 255 )bitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255));else if ((c.R * n) < 0 )bitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0));}}return bitmap;}
b.Kịch bản
Công cụ :PS Levels(Photoshop->Image->Adjustments->Levels)
Đầu vào :Ảnh có histogram khuyết hai đầu độ tương phản kém
Thao tác :tat hay đổi giải xám ảnh đầu vào :
Kết Quả :
Cùng với công cụ trên ta có thể chỉnh sửa cho ảnh RGB (lần lượt chỉnh từng histogram ứng với các màu green ,blue,red )như hình minh hoạ :
Phép cân bằng(san bằng) biểu đồ:
a.Lý thuyết :
Mục đích:Histogram equalization xuất phát từ mục đích so ánh các ảnh trên cùng một cơ sở cụ thể; Làm hiện ra các đối tượng bị che khuất(nhờ việc tăng độ tương phản ảnh trong quá trình sử lý).Vì vậy người ta đưa Histogram về một biểu đồ định trước
Ý tưởng:San đều biểu đồ ,làm xác suốt xuất hiện các điểm có giá trị độ chói (i) trong ảnh thuộc khoảng [a min;amax].Hàm mật độ xác suất đầu vào và đầu ra có quan hệ sau :
Ở đây ta mặc đinh pb(b) = Constant.Tức là :
Các bước cụ thể:
Code trên C:
private Bitmap HistogramEqualization(Bitmap bm){Bitmap bitmap = new Bitmap(bm);int w = bitmap.Width * bitmap.Height;//Tinh to chuc doint h []= new int[255];int hN[] = new int[255];GetH(bm, h);//Chuan hoa to chuc dofor (int i = 0; i = h / w;}//Tinh ham mat do xac Suatint Z []= new int[255];Z[0] = hN[0];for (int i = 1; i = Z[i - 1] + hN;}int x, y;Byte c;for (y = 0; y * 255));bitmap.SetPixel(x, y, Color.FromArgb(c, c, c));}} return bitmap;}
Ví dụ:
Cân bằng histogram của ảnh S
Xác định tần số mức xám
mức xám 10 20 30 40 50 60 70
tần suất 3 4 5 3 3 3 4
Suy ra
;
Áp dụng ImEq[i,j]=255*Hc[Im[i,j]] và làm tròn số liệu ta có
Mức xám sin
10
20
30
40
50
60
70
Thay thế bởi sout
31
72
122
153
184
214
255
b.Kịch bản :
Công cụ :PS Equalize(Photoshop->Image->Adjustments)
Ảnh Đầu:
Thao tác :
Kết quả :Histogram đã được “san bằng”,ảnh có độ tương phản cao :
Tương tự với cùng một thao tác ta có thể áp dụng cho ảnh đa mức xám :
Nhận xét tương tự là ảnh có độ tương phản cao giúp ta có thể nhận thấy rõ ràng các đối tượng trong ảnh .Vì vậy phương pháp này được ứng dụng rộng rãi trong các lĩnh vực khoa học như thiên văn học và y học…
3.Nhận xét và tổng kết:
Mỗi phép biến đổi dù với mục đích gì thì cũng cần áp dụng một cách mềm dẻo để đạt được mục đích tốt nhất.Ví dụ , xét trên phương diện cảm quan nghệ thuật chứ không phải phương diện công nghệ xử lý. Histogram là công cụ đắc lực nhưng không thay thế cảm nhận nghệ thuật của con người, nhất là những người luôn tìm kiếm sự phá cách trong nhiếp ảnh. Nếu người chụp cố tình ghi lại những khoảng tối của màn đêm hay khoảng tuyết trắng xóa thì histogram sẽ có những ngọn cao về trái hoặc về phải. Điều đó không có nghĩa là bức ảnh không đẹp.
Histogram ở bức ảnh này cho thấy khoảng đen rất lớn nhưng một chút ánh sáng của mặt trăng đã làm nên vẻ đẹp của khung hình.
Histogram của bức ảnh này nghiêng về phía phải nhưng các chi tiết không bị cháy.
Nói tóm lại ứng dụng các phép xử lý ảnh nói riêng và các công nghệ nói chung luôn cần có sự mềm dẻo và linh động .
Phân công công việc
Hoàng Việt Hùng -trưởng nhóm phân công việc,tìm hiểu phần “ Ph ép cân bằng biểu đồ histogam ” và “ Phép trượt biểu đồ histogram”,viết báo cáo và slide báo cáo trên lớp.
Lê Đình Hưng tìm tài liệu và làm báo cáo phần “ Phép co dãn biểu đồ histogram”.
Nguyễn Văn Toàn đóng góp ý kiến chỉnh sửa slide ,báo cáo.
Tài Liệu Tham Khảo :
Bài giảng xử lý ảnh Cô Hoàng Lan
Xử Lý Ảnh Số -Lương Mạnh Bá-Nguyễn Thanh Thủy
Fundamental of Image Processing Ref
Mục Lục
Contents
Tài Liệu Tham Khảo :
Các file đính kèm theo tài liệu này:
- histogram_7207.doc