matlab描绘小猪佩奇为字符串

matlab描绘小猪佩奇为字符串

写在前面

怎么处理

处理方式

处理思路

开干,走起

准备素材

Code的思路

转换字符串遇到的问题

给你看看效果

后续

写在前面

从目前的形势来看,小猪佩奇很火呀。啥也别说了,我已经是小猪佩奇纹上身的人了。前两天工作的时候感觉,代码注释有点不丰满,想着这个工程已经比较成熟了,就把注释多添加点,写上规范的程序注释,这样就可以把工程交出手了。如果后续有新同事进来,可以无缝进行主导工作。想归想着,就想着怎么把什么东西添加到代码注释里面,于是就出趁着大火的小猪佩奇,尝试了一下给加进去。

怎么处理

处理方式

用哪种语言呢?本人语言学的太杂了,想了想,初步决定用python或者matlab,因为这两种相对来说比较好操作。可是python的图形处理没有怎么接触过,又因为最近一直使用matlab做图像处理,估计用起来比较快,于是乎就决定用matlab 了。

处理思路

因为只是想把图形的东西转换成对应的字符串,所以也应该只是涉及到:

彩色图片转换成灰度图(一开始的时候还想过转换成二值化图片)

根据灰度不同进行分级,将每级输出为同一字符串

输出字符串到文件

初步估计这么做就是OK的,但是实际操作中会出现一些问题,后续讨论。

开干,走起

你以为我会说:打开matlab,右上角 file–> new –> Script…….

错!

按照我的习惯是这样的:

clc;

close all;

clear all;

A = imread('PeiQi.jpg');

B = rgb2gray(A);

B = imresize(B,[107,80]);

% thresh = graythresh(A); % 这里是进行阈值自设定,

% C = im2bw(A,thresh); % 根据设定的阈值进行二值化操作

% imtool(B);

ft = fopen('comment.c','w+');

[m,n] = size (B);

C = uint8(ones(m,n)*255);

for i =1:1:m

fprintf(ft,'\n');

for j = 1:1:n

% fprintf('%d',B(i,j));

if B(i,j)>235

C(i,j) = 255;

fprintf(ft,'%s',' ');

elseif B(i,j) <= 235 && B(i,j) > 205

C(i,j) = 210;

fprintf(ft,'%s','~.~');

elseif B(i,j) <= 205 && B(i,j) > 150

C(i,j) = 180;

fprintf(ft,'%s','%!%');

elseif B(i,j) <= 150 && B(i,j) >90

C(i,j) = 120;

fprintf(ft,'%s','@,@');

else

C(i,j) = 0;

fprintf(ft,'%s','#`#');

end

end

end

% imtool(C);

fclose(ft);

fprintf('%s','That is all!');

先把代码放上去,反正是个小文件,所以吓不到人。

准备素材

首先我们得有一个模板,也就是小猪佩奇的图片,以此为模板来绘制想要得到的字符串,比如说我找到的就是下面这个图片:

按照后续我的输出调试,选图的时候需要注意:

尽量选择不复杂的图片,图形看起来简单

有大面积的相同灰度

图片的分辨率不宜太大

画面在整个图片占有率比较高

这些需要注意的地方,在后续输出的时候影响很大。

Code的思路

思路很清晰,就是读取图片,取灰度值,转换成合适的Size,开始的时候有设置为二值化图片,但是因为那样不使用与多灰度等级的,所以就不用了。

接下来的就是对灰度进行等级区分,这里,我是人工区分的,使用matlab的工具:

imtool(B);

这个函数打开之后是可以清楚的看到每个像素的具体数值的,选取的图片的灰度等级比较集中的话,就后期操作的时候比较容易分级。

可以新建一个矩阵来存储分级之后的数值,这样显示出来之后会进行对比,如果外形相差不大,那么就可以用来转换成字符串了。

转换字符串遇到的问题

转换成字符串需要注意,效果的好坏其实是跟不同的平台影响挺大的。

首先是因为字符串的宽度不一样,比如说 - ,% ,明显看来后界面的百分号要比前面的短线宽,虽然都是一个字符,但是就是有差距;还有就是受到行距的影响,即使你使用的都是相同的字符,但是因为行距不一样,所以最后在生成的文件当中,会出现一定程度的形变。

这个时候有什么办法可以调整呢,都跟你叙述到这种程度上了,那就根据不同的使用版本,自己调整喽。

给你看看效果

上图:

哈哈,效果怎么样,就这么将就看吧,后续附上运行结果。

后续

这个太大了,用 ==imresize== 把图形的大小给修改了,慢慢调一调,就出来了。

但是我觉得可以不按像素点处理,可以把图像模糊话,那样的效果可能更好一点,还没来得及实现。

收工!

matlab小猪程序,matlab描绘小猪佩奇为字符串相关推荐

  1. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  2. matlab游戏程序,matlab游戏小程序

    小程序有什么游戏是比较受欢迎的_计算机软件及应用_IT/计算机_专业资料.现在很... 总有一款PPT 适合您[最新出品\\精心整理\\倾情奉献\\敬请珍惜] 微信小程序介绍 WeChat Mini ...

  3. 微分法MATLAB语言程序,matlab微积分运算命令与例题pdf

    一.用Matlab进行微积分运算 直接在word计算 可以用notebook syms x n;s1=symsum(sin(x)/n^2, n,1, inf) s1 = (pi^2*sin(x))/6 ...

  4. matlab化学程序,Matlab在化学的应用

    Matlab语言在化学中的应用 摘要:通过三个具体实例介绍Matlab语言在化学中的应用.说明在数值计算方面Matlab语言有着比目前流行的高级语言fortran.pascal.c无法比拟的强大功能, ...

  5. matlab 内弹道程序,MATLAB内弹道程序 - 毕设专用!!!

    内弹道及枪膛合力Matlab程序 clear; close all; format long d=0.0127; S=0.82*0.0127^2; V0=2.04e-5; l_0=V0/S; lg=0 ...

  6. matlab 编写程序,matlab语言编写程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是我编的程序: disp('开始进行模板训练...') % filename=strcat('D:\exercise\matlab\try_it\H0. ...

  7. matlab流程图程序,matlab程序流程图

    <matlab程序流程图>由会员分享,可在线阅读,更多相关<matlab程序流程图(11页珍藏版)>请在人人文库网上搜索. 1.辊系位置关系:B.C辊偏心环的偏心量1=6.35 ...

  8. matlab距离保护程序,MATLAB的距离保护仿真.ppt

    <MATLAB的距离保护仿真.ppt>由会员分享,可在线阅读,更多相关<MATLAB的距离保护仿真.ppt(22页珍藏版)>请在人人文库网上搜索. 1.利用MATLAB进行的距 ...

  9. 好玩的matlab小程序,matlab初学者的60个小程序示例

    [实例简介] 该资源包括了60个matlab的小程序,容易理解,由易到难,对于初学者是一份很好的资料. [实例截图] [核心代码] 60smallcodeMatlabforbeginners `-- ...

最新文章

  1. Tensorflow中实现leakyRelu
  2. 嵌入式开发之davinci--- 8168 电源调试总结
  3. redis命令操作(1)
  4. logback 的过滤器和异步日志和自定义 logger
  5. hdu 2275 Kiki Little Kiki 1
  6. C风格字符串与C++风格字符串
  7. 图片转可编辑ppt_电脑如何简单快速将图片转为文字,不用下载任何软件,免费使用。...
  8. 十大震撼谷歌地图卫星照
  9. 快速了解安卓四大组件
  10. 模板,宏,atuo关键字的简述
  11. IIS PHP MYSQL出现问题_iis php mysql
  12. 币图_教你什么是IM 去中心化概念模型与架构设计
  13. springboot+elasticsearch+bboss框架集成遇到的坑
  14. 科目二 车速忽快忽慢
  15. spring定时任务:@Scheduled
  16. python - 文件操作函数练习
  17. fcpx插件:stupid raisins info pop for mac(27个标题字幕栏)
  18. python主程序退出方法quit()
  19. 一张H5游戏页引起的思考
  20. Linux Shell nohup命令用法

热门文章

  1. 我的三六零手机微软官网首页:3MDSHUZIHULIAN.MYSSSSSL.COM.CN.HTMLK微软官网首页:360DATA.D猪手PIGEDpassport.COM.CN.HTMLK
  2. 物联网卡设置_联通物联网卡怎么设置APN?
  3. 8051单片机实战分析(以STC89C52RC为例) | 09 - LED点阵显示数字
  4. html字体图标的使用
  5. Centos7启动错误(xfs文件系统修复)
  6. 聊聊数字化转型与DevOps
  7. linux性价比笔记本推荐,最低只要2500元 高性价比学生笔记本推荐
  8. vue 错误building 2/2 modules 0 activeevents.js: 187 throw er; // unhandled 'error' event..... 解决
  9. 刷题记录:牛客NC23049华华给月月准备礼物
  10. 如何发送和接收参数?五种参数传递方法