设为首页收藏本站

爱乐眼底图像分析

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8167|回复: 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-22 04:10 , Processed in 0.307821 second(s), 30 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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