Thông báo

Collapse
No announcement yet.

[Solved] Nén ảnh sử dụng DCT

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

  • [Solved] Nén ảnh sử dụng DCT

    Cho em hỏi chương trình bên dưới dùng để nén ảnh từ màu sang đen trắng,bây giờ em muốn nén ảnh màu vẫn ra ảnh màu thì phải sửa đoạn code như thế nào.Nếu có thể các anh có thể ghi chú thích từng lệnh được hông?
    Em xin cảm ơn
    Code:
    dvalue=imread('map.bmp');
    dvalue = double(dvalue)/255;
    dvalue = rgb2gray(dvalue);
    img_dct=dct2(dvalue);
    img_pow=(img_dct).^2;
    img_pow=img_pow(:);
    [B,index]=sort(img_pow);%no zig-zag
    B=flipud(B);
    index=flipud(index);
    compressed_dct=zeros(size(dvalue));
    coeff = 20000;% maybe change the value
    for k=1:coeff
    compressed_dct(index(k))=img_dct(index(k));
    end
    im=idct2(compressed_dct);
    imwrite(im, 'maptemp2.bmp')

  • #2
    Ảnh màu và ảnh đen trắng khác nhau chỗ nào ?? Ảnh màu có nhiều chiều hơn ảnh xám.

    Phương pháp nén ảnh trên chỉ áp dụng cho từng chiều mà thôi. Bạn đọc kĩ lại nguyên tắc chuyển thành ảnh đen trắng của hàm rgb2gray đi nhá, xem nguyên tắc thế nào.

    Nếu muốn nén vào mà vẫn giữ nguyên tính chất ảnh màu, thì làm với từng chiều của ảnh màu rồi cuối cùng kết hợp vào là được.

    Sau lệnh: dvalue=ỉmead('map.bmp'); thêm lệnh sau bên dưới size(dvalue) sẽ thấy trong cửa sổ command kích thước của ảnh này thế nào, rồi tìm cách phân tích các chiều ra nhé.

    Chúc bạn thành công.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X