matlab 图像数据集函数,MATLAB小函数:展示灰度图像数据集的部分样例

MATLAB小函数:展示灰度图像数据集的部分样例

给定一个.mat文件的灰度图像数据集,用MATLAB程序展示该图像数据集的一部分样例,每一类都展示相同数目的样例图,并将它们汇总成一幅图并保存图片。数据来源:Face databases (Yale, ORL, PIE and YaleB)

1. MATLAB程序

Image_integration.m

function Image_samples=Image_integration(data, real_label, N_samples)

% Gray image integration

% This code only applies to square matrices

% Input:

% data: dataset. N*Dim

% real_label: GroundTruth. N*1

% N_samples: number of selected samples

% Output:

% Image_samples:Integrated image

% Author: kailugaji https://www.cnblogs.com/kailugaji/

[~, Dim]=size(data);

[~, b]=sort(real_label);

data=data(b, :);

K=length(unique(real_label)); % number of cluster

[~, ID]=unique(real_label);

ID=ID-1;

image_10=cell(N_samples, K);

temp=cell(N_samples, K);

Image_samples=[];

for i=1:N_samples

for j=1:K

temp{i, j}=reshape(data(ID(j)+i, :), sqrt(Dim), sqrt(Dim)); % you can change its size

image_10{i, j}=[image_10{i, j}, temp{i, j}];

end

Image_samples=[Image_samples; image_10{i, :}];

end

demo.m

clear

clc

% Author: kailugaji https://www.cnblogs.com/kailugaji/

interval=7; % The size of the middle space

N_samples=10; % number of selected samples

load("ORL_64x64.mat")

Image_samples=Image_integration(fea, gnd, N_samples);

A=mat2gray(Image_samples);

figure(1)

imshow(A, "Border","tight");

print(gcf,"-r1000","-djpeg","My_ORL.jpg");

load("Yale_64x64.mat")

Image_samples=Image_integration(fea, gnd, N_samples);

B=mat2gray(Image_samples);

figure(1)

imshow(B, "Border","tight");

print(gcf,"-r1000","-djpeg","My_Yale.jpg");

A_=imresize(A,[500, 2000]);

B_=imresize(B,[500, 750]);

C=[A_, 255.*ones(size(A_(:, 1:interval, :))), B_];

figure(3)

imshow(C, "Border","tight");

print(gcf,"-r1000","-djpeg","My_Image.jpg");

2. 结果

ORL数据集部分样例图

c2d2b515c680aeba1316c80b10422516.png

Yale数据集部分样例图

95c75d4a933e604abcfa9c7af200114c.png

两个数据集合并在一起的样例示意图

e679c6e5c8aedd2c98714a67c8e1f655.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值