漢字でグレースケール画像にする(MATLAB,FreeMat)

一年生の漢字でグレースケールに: 最近傍法(1-NN)

 

XX=imread('IMG_20160830_194709.jpg');  size(XX)
YY=0.3.*XX(:,:,1)+0.59.*XX(:,:,2)+0.11*XX(:,:,3);
YY=double(YY)./255; a=15; b=15; D=[];
load('C:\FreeMat\11_7_MojiGa\ZZ.mat'); size(ZZ)
for i=1:217
    for j=1:160
    Y=YY(a*(i-1)+1:a*i,b*(j-1)+1:b*j);
      for k=1:81
        D(k)=sum(sum((Y-ZZ(:,:,k)).^2,1),2);
      end
    [Kyori,I]=min(D); % 1-NN
    YY(a*(i-1)+1:a*i,b*(j-1)+1:b*j)=ZZ(:,:,I);
    end
end
imwrite(YY,'C:\FreeMat\11_7_MojiGa\MojiGa04.png');

 

 

小さなサイズの写真を用いた場合は、漢字がはっきり出ます。

iOS絵文字で描く(MATLAB,FreeMat)

 

1-NNでカラー画像を作成

 

YY=imread('IMG_20160830_194709-1.jpg'); 
a=16; b=15; D=[]; YY=double(YY)./255;
load('C:\FreeMat\11_7_MojiGa\ZZcol.mat');
for i=1:95
    for j=1:75
    Y=YY(a*(i-1)+1:a*i,b*(j-1)+1:b*j,:);
         for k=1:1089
          D(k)=sum(sum(sum((Y-ZZ(:,:,:,k)).^2,1),2),3);
         end
    [Kyori,I]=min(D);
    YY(a*(i-1)+1:a*i,b*(j-1)+1:b*j,:)=ZZ(:,:,:,I);
    end
end
imwrite(YY,'C:\FreeMat\11_7_MojiGa\MojiGa11.png');

一部を拡大した画像