爱乐眼底图像分析

?找回密码
?立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8072|回复: 2
打印 上一主题 下一主题

matlab实现灰度图像的位平面分解

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-29 21:16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到一位会员提出的问题:matlab实现灰度图像的位平面分解。开始是不是很理解,以为只是图像的分割,后来“小绿”会员给出提示,由于uint8(范围0~255)存储时占1bit,8位二进制表示,提取每一位就成为了位平面分解,基于这个思想,编写代码:


沙发
?楼主| 发表于 2012-8-29 21:17:20 | 只看该作者
  1. clc; clear all;
  2. ??A = imread('rice.png');
  3. ??[r, c] = size(A);
  4. ??% 读取图片,获取图像阵行列大小
  5. ??A_bin1 = []; A_bin2 = []; A_bin3 = []; A_bin4 = [];
  6. ??A_bin5 = []; A_bin6 = []; A_bin7 = []; A_bin8 = [];
  7. ??% 分别存储8位
  8. ??for i = 1 : r
  9. ? ?? ?r_bin1 = []; r_bin2 = []; r_bin3 = []; r_bin4 = [];
  10. ? ?? ?r_bin5 = []; r_bin6 = []; r_bin7 = []; r_bin8 = [];
  11. ? ?? ?% 分别存储8位矩阵对应的行
  12. ? ?? ?dec_col = zeros(1, 8);
  13. ? ?? ?for j = 1 : c
  14. ? ?? ?? ? num_bin = dec2bin( A(i, j) );
  15. ? ?? ?? ? for k = 1 : length(num_bin)??
  16. ? ?? ?? ?? ???str_bin = '00000000';
  17. ? ?? ?? ?? ???% uint8占1bit,8位
  18. ? ?? ?? ?? ???str_bin(k) = num_bin( length(num_bin) - k + 1 );
  19. ? ?? ?? ?? ???% 获取对应的位上的数值
  20. ? ?? ?? ?? ???dec_temp = bin2dec(str_bin);
  21. ? ?? ?? ?? ???% 转成十进制的
  22. ? ?? ?? ?? ???dec_col(k) = dec_temp;
  23. ? ?? ?? ? end
  24. ? ?? ?? ? r_bin1 = [r_bin1, dec_col(1)]; r_bin2 = [r_bin2, dec_col(2)];
  25. ? ?? ?? ? r_bin3 = [r_bin3, dec_col(3)]; r_bin4 = [r_bin4, dec_col(4)];
  26. ? ?? ?? ? r_bin5 = [r_bin5, dec_col(5)]; r_bin6 = [r_bin6, dec_col(6)];
  27. ? ?? ?? ? r_bin7 = [r_bin7, dec_col(7)]; r_bin8 = [r_bin8, dec_col(8)];
  28. ? ?? ?end
  29. ? ?? ?A_bin1 = [A_bin1; r_bin1]; A_bin2 = [A_bin2; r_bin2];
  30. ? ?? ?A_bin3 = [A_bin3; r_bin3]; A_bin4 = [A_bin4; r_bin4];
  31. ? ?? ?A_bin5 = [A_bin5; r_bin5]; A_bin6 = [A_bin6; r_bin6];
  32. ? ?? ?A_bin7 = [A_bin7; r_bin7]; A_bin8 = [A_bin8; r_bin8];
  33. ??end
  34. ??figure;
  35. ??subplot(3, 3, 1); imshow(A);? ?? ?title('origin image');
  36. ??subplot(3, 3, 2); imshow(A_bin1); title('1 image');
  37. ??subplot(3, 3, 3); imshow(A_bin2); title('2 image');
  38. ??subplot(3, 3, 4); imshow(A_bin3); title('3 image');
  39. ??subplot(3, 3, 5); imshow(A_bin4); title('4 image');
  40. ??subplot(3, 3, 6); imshow(A_bin5); title('5 image');
  41. ??subplot(3, 3, 7); imshow(A_bin6); title('6 image');
  42. ??subplot(3, 3, 8); imshow(A_bin7); title('7 image');
  43. ??subplot(3, 3, 9); imshow(A_bin8); title('8 image');
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|爱乐眼底图像分析 ( 京ICP备1201155号 )????? ?? ??

GMT+8, 2019-10-2 19:08 , Processed in 0.316910 second(s), 27 queries .

Powered by Discuz! X3.1

? 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表