将数据类型double的矩阵转换为二进制图像

时间:2014-05-24 13:10:33

标签: matlab

我正在研究模糊边缘检测器。在应用模糊化和去模糊化后,我有一个与图像大小相同的矩阵。但该矩阵是双数据类型,此矩阵中的值为0或1.我想将此矩阵显示为二进制图像。这是我试过的代码,其中rff是defuzzyfied矩阵。

>> rff2=uint8(rff);
>> rff3=im2bw(rff2);
>> imshow(rff3);

显示空白图像。但我希望有一个边缘图像。

1 个答案:

答案 0 :(得分:0)

使用数据类型' uint8',matlab期望该值介于0和intmax之间。您的图像的值为0和1,为全黑和几乎全黑。在不知道您的输入究竟是什么的情况下,这应该有效:

%some random data, which hopefully matches your datatype
rff=repmat(randi(2,100,100)-1,[1,1,3]);
%convert to black and white double
rff2=im2bw(rff);
%optional step, we know that rff contains only 0 and 1, convert to logical
rff3=logical(rff2)
%display image
imshow(rff3);