Xử lý ảnh: Đều hóa tổ chức đồ (Histogram equalization) trong Matlab

Từ khóa

Trong matlab để đều hóa tổ chức đồ, ta dùng hàm histeq với cú pháp như sau:
histeq(ảnh_cần_đều_hóa);
Ví dụ: 03.jpg là 1 ảnh màu RGB 
>> i_gray=rgb2gray(imread('03.jpg'));
>> i_eq = histeq(i_gray);
>> imshow ([i_gray i_eq]);

Ảnh gốc - Ảnh sau khi đều hóa

Để tự viết hàm đều hóa tương tự như hàm histeq, ta có đoạn code matlab sau:

im = rgb2gray(imread('03.jpg'));
s = size(im);
ni(1:256) = 0;
for i=1:s(1)
    for j = 1:s(2)
      ni(im(i,j)+1) = ni(im(i,j)+1)+1;
    end;
   end;
s_ni(1:256) = 0;
s_ni(1) = ni(1);
for i=2:256
    s_ni(i) = ni(i)+s_ni(i-1);
   end;
n = s(1)*s(2);
c = 255/n;
s_ni = round(s_ni*c);
ikq = im;
for i=1:s(1)
    for j=1:s(2)
     ikq(i,j) = s_ni(im(i,j)+1);
    end;
   end;
figure,imshow (im),figure,imshow (ikq);

Kết quả:

Bài liên quan

Bài liên quan