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:mfprintf(ft,'\n');for j = 1:1:n
%         fprintf('%d',B(i,j));if B(i,j)>235C(i,j) = 255;fprintf(ft,'%s','  ');elseif B(i,j) <= 235 && B(i,j) > 205C(i,j) = 210;fprintf(ft,'%s','~.~');elseif B(i,j) <= 205 && B(i,j) > 150C(i,j) = 180;fprintf(ft,'%s','%!%');elseif B(i,j) <= 150 && B(i,j) >90C(i,j) = 120;fprintf(ft,'%s','@,@');elseC(i,j) = 0;fprintf(ft,'%s','#`#');endend
end
% imtool(C);
fclose(ft);
fprintf('%s','That is all!');

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

准备素材

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

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

  • 尽量选择不复杂的图片,图形看起来简单
  • 有大面积的相同灰度
  • 图片的分辨率不宜太大
  • 画面在整个图片占有率比较高

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

Code的思路

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

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

    imtool(B);

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

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

转换字符串遇到的问题

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

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

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

给你看看效果

上图:

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

后续

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

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

收工!

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

  1. matlab小猪程序,matlab描绘小猪佩奇为字符串

    matlab描绘小猪佩奇为字符串 matlab描绘小猪佩奇为字符串 写在前面 怎么处理 处理方式 处理思路 开干,走起 准备素材 Code的思路 转换字符串遇到的问题 给你看看效果 后续 写在前面 从 ...

  2. Python使用turtle库 描绘小猪佩奇

    import turtle as t ''' t.pu()  提起画笔 t.pd()  移动时绘制图形,缺省时也为绘制 t.seth  设置当前朝向为angle角度 t.begin_fill()  准 ...

  3. 一部《小猪佩奇》让中国90%的家长感到惭愧

    <小猪佩奇>又名<粉红猪小妹>,英文名<Peppa Pig>,是一部英国动画片.每集仅五分钟,讲述的是小猪佩奇一家的日常生活.国内引进了前四季,共156集. 豆瓣评 ...

  4. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  5. 用python画字母b_用Python 画个多啦A梦,小猪佩奇

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  6. 用python画哆啦a梦的身体_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频...

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  7. 05.python学习系列——画图库turtle(啥是小猪佩奇)

    turtle库 Turtle,也叫海龟渲染器,使用Turtle库画图也叫海龟作图.Turtle库是Python语言中一个很流行的绘制图像的函数库.海龟渲染器,和各种三维软件都有着良好的结合.功能强大, ...

  8. python海龟绘图小猪佩奇_海龟绘图(Turtle Graphics)

    python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle 先说明一下turtl ...

  9. python turtle绕原点旋转_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

最新文章

  1. 玩“剪刀石头布“的脑机!密歇根大学开发由大脑意识精密控制的假肢
  2. NetworkOnMainThreadException异常
  3. Python3.0 我的DailyReport 脚本(一) 使用COM操作Excel
  4. 串行端口 linux,规范模式Linux串行端口
  5. [老老实实学WCF] 第二篇 配置WCF
  6. 跟我学 Java 8 新特性之 Stream 流(三)缩减操作
  7. potainer 日志_日志系统落地:制定日志规范
  8. 【LeetCode笔记 - 每日一题】384. 打乱数组(Java、洗牌算法)
  9. 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算
  10. 阿里云ECS+Nginx+nginx_rtmp_module+FFMPEG服务器搭建过程
  11. 【Unity】Unity Pivot 与 Center Globle 与Lical
  12. ReportMachine如何导出PDF文档?
  13. 安卓系统 国内谷歌服务器,在国内使用搭载安卓原生态系统谷歌手机,会是一种什么体验?...
  14. Go语言发展状况和前景
  15. C语言—各种数据类型间的混合运算
  16. 三级联动下拉框(省市县)存储数据库,包含信息回填
  17. win7重装的那些事儿
  18. 《路由器开发 - 路由器刷机指南》优酷路由宝 YK-L1刷机
  19. 信息系统项目管理师必背核心考点(六十二)项目组合治理主要过程
  20. 使用AD软件绘制PCB的过程

热门文章

  1. html a标签属性总结
  2. 计算机专业内存8g和16g差距大吗,原始8G和16G计算机内存之间有很大区别吗?
  3. MobileNet V1 复古的直筒子结构 --温故而知新
  4. 100种思维模型之机会成本思维模型-001
  5. 机器学习中规则学习的一些知识
  6. Google Scholar 导出文献的BibTex引用代码
  7. 零基础Python入门学习笔记(持续更新)
  8. navicat数据库怎么筛选查询某一个字段
  9. animate改变背景颜色_CSS 颜色体系详解,看完弄懂,直通大厂(近万字精华)
  10. BiometricPrompt之六 - BiometricDialogView锁屏显示