Thông báo

Collapse
No announcement yet.

Bạn nào rành về MATLAB cho mình hỏi một chút

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Bạn nào rành về MATLAB cho mình hỏi một chút

    Mình đang có bài tập về nén ảnh trong Matlab, bài tập thì như thế này, từ một cái ảnh đầu vào trắng đen, dùng phương pháp nén lượng tử hóa thích nghi tiến (Forward Adaptive Quantization) để ra thành ảnh nén và sai số, mà thầy cho công thức tức là phải tìm xử lý dữ liệu theo từng khổi, tức là theo block 3x3, 4x4 hoặc 8x8, ví dụ như từ một cái ảnh 400x400 (pixel), ví dụ như dùng block 4x4 thì đầu tiên:
    -Xử lý trên block đó, gọi là BM, tìm Min, Max của cái block (4x4 đó)
    -rồi tìm DIFF=Max-Min
    -Tiếp đến QSTEP=DIFF/L (với L=2^K, với K tức là số bpp, mình cũng chẳng hiểu, mà thầy cho ví dụ là 3 tức L=8)
    -rồi cũng trong block đó có một vòng for chạy từ 1:numel(BM) ta tìm code=(BM(i)-Min)/QSTEP; cái code này tức là mức xám đầu ra sau khi nén, rồi mình đưa từ từ từng cái code mới tính vào một cái ma trận rỗng, tức là ảnh trắng.
    -Sai số thì mình nghĩ lấy cải ảnh đầu trừ cái ảnh sau khi nén. Mình viết code như dưới thì nó thông báo " Index exceeds matrix dimensions". Bạn nào biết thì vẽ cho mình làm với, sắp tới hạn nộp rồi mà búi quá

    C=imread('D:\Anh.jpg');
    I=rgb2gray(C);
    S=size(I);
    G=size(I);
    for r=1:4:S(1)
    for c=1:4:S(2)
    BM=I(r:r+3:c:c+3);
    Min=min(BM(;
    Max=max(BM(;
    Diff=Max-Min;
    Qstep=Diff/8;
    CM=G(r:r+3:c:c+3);
    for i=1:numel(BM)
    for i=1:numel(CM)
    code=(BM(i)-Min)/Qstep;
    CM(i)=code;
    end
    end
    end
    end

Về tác giả

Collapse

YoungUk Tìm hiểu thêm về YoungUk

Bài viết mới nhất

Collapse

Đang tải...
X