首页 > 代码库 > Matlab生成强迫症图片
Matlab生成强迫症图片
最近网络上流行强迫症图片做头像,闲来无事,拿matlab弄了一个生成器,可以生成包含0-9以及99+的强迫症。
原理很简单,可以直接用两幅图叠加,这里为了减少文件,将数字图片保存在.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生成强迫症图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。