将位图转换为二进制值

时间:2017-08-21 02:31:22

标签: matlab bitmap binary

我想将位图文件转换为由二进制值组成的数组;但是当我使用这个脚本时:

arr=imread('sample.bmp');
arrBin=cell(1140,912,3);
for i=1:1140
    for j=1:912
        for k=1:3
            arrBin(i,j,k)=dec2bin(arr(i,j,k));
        end;
    end;
end;

调试信息显示:

Conversion to cell from char is not possible.

Error in imgProc (line 9)
            arrBin(i,j,k)=dec2bin(arr(i,j,k));

>> 

有没有人?提前谢谢。

2 个答案:

答案 0 :(得分:0)

您需要将content indexing{}一起使用才能将dec2bin中的字符串值放入您的单元格数组arrBin中,如下所示:

arrBin{i,j,k} = dec2bin(arr(i,j,k));

答案 1 :(得分:0)

你的解决方案在大图像上会非常慢。你最好做这样的事情:

I=imread('sample.bmp');
A=dec2bin(I,8);%8bit
% this is how you index to array
i=5;j=35;ch=2;
pixel=A(sub2ind(size(I),i,j,ch),:)
相关问题