码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab强迫症产生的图像

时间:2015-08-12 16:15:32      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

最近流行的网络迷恋的照片做头像,闲来无事,取matlab获取一个建设者,它可以产生包括0-9以及99+OCD。

原理很easy,图叠加,这里为了降低文件,将数字图片保存在.mat二进制文件里。

=====================================================================================================

代码例如以下:

clear,clc
%% open image file
[fn,pn,fi]=uigetfile(‘*.bmp;*.png;*.jpg;*.jpeg‘,‘choose image‘);
img=imread([pn fn]);
%% process image 
width = size(img,1);%image width
height = size(img,2);%image height
minlength = min([width,height]);%min of width and height
circle_d = floor(minlength*(1-0.618));%circle radius
circle_x_end = circle_d;
circle_y_start = height - circle_d + 1;
%circle center
circle_center_x = circle_x_end/2;
circle_center_y = (circle_y_start+height)/2;
%draw circle--------------------------------
for i=1:circle_x_end
    for j=circle_y_start:height
        if((i-circle_center_x)^2+(j-circle_center_y)^2 <= (circle_d/2)^2)
            img(i,j,1) = 255;
            img(i,j,2) = 0;
            img(i,j,3) = 0;
        end
    end
end
% draw number-------------------------------
load number.mat
num = input(‘Input the number to add to the image:‘);
while(num<0 || num>9)
    num = input(‘Input error,out of range(0-9),reinput the number:‘); 
end
%-------------------------------------------
%scale the nu7mber image
var_name = [‘number‘ num2str(num)];
eval([var_name ‘=imresize(‘ var_name ‘,[circle_x_end,height - circle_y_start+1]);‘]);
%sharp the image
eval([‘index = find(‘ var_name ‘>0);‘]);
for k=1:length(index)
    eval([var_name ‘(index(k)) = 255;‘]);
end
%add the value to the 2nd and 3rd layer
eval([‘img(1:circle_x_end,circle_y_start:height,2) = img(1:circle_x_end,circle_y_start:height,2)+‘ var_name ‘;‘]);
eval([‘img(1:circle_x_end,circle_y_start:height,3) = img(1:circle_x_end,circle_y_start:height,3)+‘ var_name ‘;‘]);
%% show image
imshow(img);
%% save image
dotindex = max(find(fn==‘.‘));
imwrite(img,[fn(1:dotindex-1) ‘ with number ‘ num2str(num) fn(dotindex:end)]);


=====================================================================================================

另外数字的二进制文件随代码一起上传在此(点击此处下载


效果图例如以下:

技术分享






版权声明:本文博客原创文章,博客,未经同意,不得转载。

Matlab强迫症产生的图像

标签:

原文地址:http://www.cnblogs.com/lcchuguo/p/4724512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!