MATLAB小函数:展示灰度图像数据集的部分样例
作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
更多请看: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); [real_label, 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');