最近在做一个关于图像处理的小项目,因为要对图像进行预测和分类,所以基本思路就是把已知类别的图像像素点及其类别构造出来,把R,G,B作为三个特征,一个像素作为一个训练样本。
RGBimg = imread('Data8.tif');
count = 1;
for i=1:m
for j=1:n
R_matrix(count) = RGBimg(i,j,1);
G_matrix(count) = RGBimg(i,j,2);
B_matrix(count) = RGBimg(i,j,3);
count = count+1;
end
end
%最后得到的矩阵 R_matrix G_matrix B_matrix就是土地的颜色分布
final_matrix = [ R_matrix', G_matrix', B_matrix',label_img'];%把像素点的RGB值以及它对应的类别(0,1)合并起来,组成一个四列的表格
xlswrite('data8.xlsx',final_matrix)%文件写入文件
对于生成的xls文件,如果想转换为csv格式,可以使用一下语句【python】
import pandas as pd
ex = pd.read_excel("source.xlsx")
ex.to_csv("target.csv",encoding ="gbk")
最后,反向推理,如果已知一张二值图像的像素值(一维列向量)如何将其可视化?很简单。
img2= csvread('Test.csv');
cnt=1;
for i=1:m %m为行宽
for j=1:n%n为列宽,要保证m*n的值小于等于csv中的数据总数。
img(i,j)=img2(cnt,1);%选定第一列
cnt=cnt+1;
end
end
imshow(img)