如何用MATLAB将图片转换只含有0,1的矩阵
1、首先,读取目标图像;matlab代码如图所示
tu=imread('C:\Users\Administrator\Desktop\111.png'); %也可以直接读取,但图像须在默认目录内。


2、将目标图像灰度化,代码如下,如图所示。
x=rgb2gray(tu);
>> subplot(122);
>> imshow(x);
>> title('灰度图像');


3、灰度图像二值化:设定阈值,将灰度图转化为黑白图像,阈值的设定根据自己的情况而定,比如设置0.48,也可以使用matlab调用graythresh(x)自动获取阈值。
自动阈值:thresh1=graythresh(x): %thresh1=0.5216
tu2 = im2bw(x,thresh1); %如图所示


4、RGB图像二值化:和灰度二值化相同,既可以自己设置阈值,也可以调用函数获取阈值。
自动获取:thresh2=graythresh(tu):%thresh1=0.5843
tu3 = im2bw(x,thresh2);%如图所示
由于两图阈值比较接近,故二值化图像没有明显变化。


5、将二值化图像转化为矩阵,就能实现将图像转化为只含有0和1的矩阵。图像转换数字矩阵只需用Matlab读取二值化图像即可。
例:Matrix1=imread('tu2');
Matrix3=imread('tu3');
2、或者在以上步骤的基础上导出二值化(tu2,tu3)结果即可(在Matlab中Workspace) ,
csvwrite('0和1矩阵x.csv',tu2); % 导出矩阵
csvwrite('0和1矩阵tu.csv',tu3); % 导出矩阵
如图所示。

