我们来做一些有意思的事情,通过外界的扫描仪或者照相机之类的,获取你写在纸上的签名,图片一般保存为jpg格式。然后用matlab把图片中的签名通过某种采样方法来采取尽可能少的点来用贝塞尔曲线把你的签名勾勒出来并保存为pdf格式。这个东西感觉起来好像很高大上,我们不妨把这个任务分而治之。现在我们需要做的是采集图片->采集样本点->用贝塞尔曲线画出->保存为pdf格式。

高级做法:应用图像切割。

step1:

用照相机或者扫描仪获取的图片可以对图像进行操作。

法一:

使用imread命令读取图片。

I = imread('文件名.格式后缀');

图片是以矩阵方式存储的,被读取出来就是一个矩阵。

所以I是一个矩阵,一般为三维的,如果是灰度图就是二维的。

法二:

function pushbutton1_Callback(hObject, eventdata, handles) [fname, pname, index] = uigetfile({'*.jpg'; '*.bmp'}, '选择图片');%读取图片    str3 = [pname fname];    axes(handles.axes1);    imshow(str3);      handles.img = str3     %将图片赋值于句柄    guidata(hObject, handles);%更新句柄 function pushbutton2_Callback(hObject, eventdata, handles) img1 = handles.img; %将图片赋给img1,就可以对img1进行操作了。

参考函数:使用imshow命令显示图片。 imshow(I);

step2:

采集样本点,这就是技术的核心了,怎么采点呢?这就的看你的了。

step3:

用贝塞尔曲线画出图形这一块其实是你的点已经取得相当的好,然后用贝塞尔曲线画出就ok了,在这里,我贴上用鼠标获取端点与控制点的函数画出贝塞尔曲线的代码。其实稍微修改一下就可以变成给你一堆点,照着点画贝塞尔曲线的代码。

画图这一块有一个要提醒大家,一定要有hold on;不然hold不住啊!这是为了让每次画的图保留在那里,这比用一个数组存每次的结果好多了。

% project2 % draw a picture of A % name       :Chen Yu % student ID :12353032 % class&grade:class 2,grade 12 function draw hold off plot([-1 1],[0 0],'k',[0 0],[-1 1],'k'); hold on; xlist = []; ylist = []; t     = 0:.001:1; button= 1; k     = 0; while(button ~= 3)     [xnew,ynew,button] = ginput(1);  %get one mouse click     if button == 1         k = k+1;         xlist(k) = xnew;         ylist(k) = ynew; % add new point to the list         if k > 1             if mod(k,3) == 1                 for i = 1:4                     x(i) = xlist(k-i+1);                     y(i) = ylist(k-i+1);                 end                 %plot spline points and control pts                 plot([x(1) x(2)],[y(1) y(2)],'o:',x(2),y(2),'o');                 plot([x(3) x(4)],[y(3) y(4)],'c:',x(3),y(3),'cs');                 plot(x(1),y(1),'bo',x(4),y(4),'bo');                 bx = 3*(x(2) - x(1));                 by = 3*(y(2) - y(1));                 cx = 3*(x(3) - x(2));                 cy = 3*(y(3) - y(2));                 dx = x(4) - x(1) - bx - cx;                 dy = y(4) - y(1) - by - cy;                 xp = x(1) + t.*(bx + t.*(cx + t*dx));                 yp = y(1) + t.*(by + t.*(cy + t*dy));                 plot(xp,yp); % plot spline curve             end         end     end end     step4:

保存为pdf格式其实就是你用plot函数画出来之后点save,里面就有pdf格式哦!不过有点小提示,如果你发现你的图片怎么只有一点点,还有一部分那里去了。别着急,你在save的时候把图片的窗口缩小就可以了,这好像有点变态,没办法,设定就是这样的。最后就大功告成,神功已成。

低级做法:

step1:显示图像。获取图像矩阵I。提示:在这里图像要hold on。

step2:在上面描点并保存下来。接着把保存下来的点作为贝赛尔曲线的输入,用上面代码稍微改一下就可以得出答案。提示:在这里显示图像可以用figure(2),显示第二张图。还有一个point就是你会发现图像显示会倒过来,你只要把纵坐标画图的时候从大到小倒过来既可。

matlab制作签名图像,Matlab之画出你的签名相关推荐

  1. matlab高斯白噪声频谱图,如何用MATLAB产生高斯白噪声,并且画出图形?

    如何用MATLAB产生高斯白噪声,并且画出图形? 来源:互联网  宽屏版  评论 2009-06-19 02:34:10 分类: 电脑/网络 >> 程序设计 >> 其他编程语言 ...

  2. matlab main函数_Python 和MATLAB 制作Gif 图像

    主要内容概述: 预备知识 MATLAB 代码实现GIF 使用imageio 生成GIF 使用animation 交互式方式生成GIF 总结 0,预备知识 首先了解下什么是GIF 图片,以及常用的图片格 ...

  3. 用MATLAB实现高斯投影正反算且画出高斯投影图形

    具体代码如下: 使用matlab编程实现 clear % 选取画图的区域 for i = 60:1:120[P0(i-59,1),P0(i-59,2)]=GSBL2xym(0,i,90);[P1(i- ...

  4. python画指数函数图像_python实现画出e指数函数的图像

    这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ... #!/usr/bin/ ...

  5. python 制作正态分布图,画出拒绝域

    下面的程序实现画出正态分布图形,并且画出相应的拒绝域范围. from scipy.stats import norm import numpy as np import matplotlib.pypl ...

  6. matlab导入数据画二维云图,matlab中用xyz三组数据画出2维云图

    各位Matlab的高手,你们好. 我最近遇到一个技术问题,久未能解决,还望知道的能指教下,谢谢.我的问题是, 我有三组数据xyz.其中,xy分别为二维面的坐标,z为对于坐标的温度值.由于试件发生了变形 ...

  7. 使用Matlab在地图上根据经纬度画出轨迹的简单方法

    工作中收集到一些经纬度信息,需要在地图上画出来以便识别运行路线.对比了不少方法,觉得直接用Matlab内置的函数调用在线地图,并且在在线地图上绘图,是最简单的.具体代码如下,其中XY是自己新建的矩阵, ...

  8. matlab中在图像上划线 画圈的方法

    其实用plot都可以搞定. plot(imp(:,1),imp(:,2),'ro'); %最后的'ro',r是代表红色,o是代表画圈.画圈的话可以提供多个点的坐标,我这里用的就是向量的形式. plot ...

  9. matlab画奥运五环,MATLAB在同一坐标轴下,画出奥运五环标志,要求比例合适,每环用不同颜色表示怎么...

    这个题目有点意思,好想法,但M软件画这种图不是强项呀画图是可以,但估计肯定达不到很好的效果的,我画了一个,你看看,有问题再联系.clear all;clc;x0=3;y0=3;x=[x0-1,x0+1 ...

最新文章

  1. php图片长宽处理,PHP重置JPG图片尺寸的函数
  2. layui分页limit不显示_layui table分页 page为false时,limit问题
  3. SAP UI5 应用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具使用方法介绍
  4. SAS的数组array介绍
  5. android获取电量的方法,Android获取电池电量和电池容量
  6. JS设计模式之工厂模式
  7. Go 中文和unicode字符之间转换
  8. 概率论的学习和整理10:古典概型 和 二项分布(N重伯努利试验)
  9. YDOOK:版权C符号:怎样在任何地方 任何位置快速输入版权符号 © 快捷键
  10. 如何生成dll文件 采用VS2017生成dll文件(动态库文件)和lib文件(静态库文件)以C语言为例
  11. SharePoint文件审批功能设置
  12. 【C语言编程练习】20050. 计算存款利息
  13. 红帽linux系统内核版本7,如何查看Linux发行版内核版本及系统版本?
  14. 阿里妈妈不能攻百度也不能守淘宝 !
  15. FOR 循环 珠峰折纸
  16. 基于c语言的学生档案管理系统设计实现
  17. 华为OD机试 - 跳格子游戏
  18. 使用for语句时的注意事项
  19. Brainstorm (头脑风暴)软件
  20. Keil MDK-ARM软件官网最新版本的下载方法

热门文章

  1. 算法题:Pow(x, n)
  2. 嵌入式音频架构 - AudioWeaver 整体概念
  3. 树莓派ubuntu wifi和网口经常断线问题其一解决方案
  4. python安全工具开发_Python安全工具开发实践 - 安全牛课堂 - 领先的信息安全在线教育平台...
  5. [问题已处理]-kubernetes中2次不同的oom处理
  6. 抖音包大小优化-资源优化
  7. linux批量删除文件过滤6,Linux下批量删除文件
  8. 原创 | 一文读懂泊松分布,指数分布和伽马分布
  9. c语言期末总结1000,C语言期末考试总结,看完保你过.ppt
  10. Python求银行卡解冻时间