RLEncode.m
上传用户:hwtw888
上传日期:2016-03-15
资源大小:177k
文件大小:1k
源码类别:

压缩解压

开发平台:

Matlab

  1. function [zipped, info] = RLEncode(vector)
  2. [m, n] = size(vector);
  3. %vector = vector(:)';
  4. vector = uint8(vector(:));
  5. L = length(vector);
  6. c = vector(1);
  7. e(1, 1) = c;     %e(:, 1)存放灰度
  8. e(1, 2) = 0;     %e(:, 2)存放行程
  9. t1 = 1;
  10. for j = 1: L
  11.     if((vector(j) == c))
  12.         e(t1, 2) = double(e(t1,2)) + 1;
  13.     else
  14.         c = vector(j);
  15.         t1 = t1 + 1;
  16.         e(t1, 1) = c;
  17.         e(t1, 2) = 1;
  18.     end
  19. end
  20. zipped = e;
  21. info.rows = m;
  22. info.cols = n;
  23. [m, n] = size(e);
  24. info.ratio = m*n/(info.rows * info.cols);