用程序,比如java,php,决策树python实现 或者其他的程序可以实现动态的修改图片上的文字吗。比如我的零钱数。

Perl/PHP/Python/Java/Ruby的拟人课堂讨论
语言的发展趋势一定是动静结合、刚柔并济 Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯 或许优雅正是来自对细节和规范的重视 (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影
Perl、Python、Ruby和PHP各自有何特点? 为什么动态语言多作为轻量级的解决方案? LAMP为什么受欢迎? Ruby on Rails为什么会流行? 编程语言的发展趋势是什么?
&剩下四种动态语言,我们将之归为后台脚本语言。&冒号说着画了张图表&&
前台语言:Visual Basic,Delphi,JavaScript
平台语言:Java,C#
后台脚本语言:Perl,PHP,Python,Ruby
系统语言:C,C++,D
引号听得仔细:&我记得您开始是把这些语言划分为C族静态语言、非C族静态语言和动态语言三类的。&
冒号解释:&那是按语法来划分的,偏重理论;现在是按应用来划分,偏重实践。&
句号旋即联想到:&这种分法貌似三层架构&&前台语言对应表现层;平台语言和后台脚本语言对应业务逻辑层;系统语言对应数据层。&
&的确有几分神似,但千万不可混淆。&冒号提醒道,&三层架构(three-layer architecture)是模块设计上的逻辑划分;而这里是按语言应用范围进行的物理划分&&与用户交互的是前台语言,与机器交互的是系统语言,介于其中的为前台提供服务同时又需要底层系统服务的是后台语言。&
逗号询问:&后台语言又细分成平台语言与后台脚本语言?&
&这是基于程序(program)与脚本(script)、静态与动态而分的。&冒号进行说明,&其实Perl,PHP,Python和Ruby都有自己的虚拟机(virtual machine),从这种意义上说它们也可作为平台语言。但在实际应用中,它们没有Java平台和.NET平台那种整合凝聚力和核心作用,通常作为轻量级的解决方案。&
问号想探个究竟:&这是由于它们都是动态语言的缘故吗?&
冒号回答:&理论上动态语言同样能承担大型应用,但实践上它们多作为粘合语言或用于中小型应用。用句时髦的话来形容,暂时还是主流的配角或非主流的主角。毕竟在运行效率、类型安全、可用资源、开发工具、技术支持等方面,它们与Java、C#相比尚有一定差距。另外它们同属&草根&语言,虽有开源社区的大力支持,在影响力上与后者未可同日而语。&
叹号揣测:&说不定在不久的将来,动态语言也会成为主流的主角。&
&世易时移,殊难逆料。但有一点可以肯定,语言的发展趋势一定是动静结合、刚柔并济。&冒号断言,&一方面以Java和C#为代表的静态语言中嫁接了动态语言的枝条;另一方面以Java和.NET为代表的平台与动态语言的交壤地带也在逐步扩大。比如JRuby允许Ruby与Java之间互相调用,类似的还有Jython、IronRuby、IronPython等等。此外值得一提的是,动态语言最活跃的舞台当数LAMP,L-A-M-P。&
引号接茬:&L是Linux,A是Apache,M是MySQL,P是PHP。这四大组件形成了一个完整的开源网络开发平台。&
冒号补充道:&P也可指Perl、Python,甚至Ruby。&
逗号调侃:&可惜Ruby的&R&比&P&多了一根尾巴。&
&有人为了自圆其说,干脆让P表示&Programming language&,这下所有语言都囊括其中了。老外就喜欢玩这种首字母缩略(acronym)的文字游戏,尤其LAMP正好还有&灯&的含义,寓意开源世界的一盏明灯,他们一定更得意了。&冒号语带调笑,&前面我们曾提及,网络应用是生长动态语言最肥沃的土壤,而LAMP就是这块土壤上搭建的平台。作为网络平台,LAMP以其开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等特色而与Java平台和.NET平台鼎足三分,尤其受中小企业的欢迎。LAMP中Linux是操作系统,Apache是Web服务器,MySQL是数据库系统,而我们当下最关心的是&P族语言&:PHP、Perl、Python还有Ruby。&
问号建议:&作为动态语言,它们的共性上节课已经谈了不少,能说说它们的个性吗?&
&它们的个性极为鲜明:Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯。先看老大哥Perl,它博采众家之长,综合了C语言的结构、sed的正则表达式、AWK的关联数组(associative array)、Lisp的表(list)和Unix Shell的命令,此外还有借鉴了一种语言,你们知道是哪种吗?&冒号忽然卖了个关子。
逗号猜想:&应该是某种OOP语言吧。&
&Perl中确有不少C++的影子,但它的对象模型在5.0以后才引入,典型的半路出家,远不如前面的特征那么自然。与其说是一种自然而然的发展,不如说是在OOP潮流裹挟下的一种身不由己的迎合。真正深入骨髓的借鉴是自然语言。&冒号给出了答案,&我们提过,Perl的发明者Larry Wall是一名语言学家,他认为程序语言应该与自然语言一样,简洁自然、易读易写、表达多样、不拘一格。Perl还有不少的格言或哲学,使得编程语言一改严谨刻板的面孔,散发出浓郁的人文气息。&
叹号幽了一默:&我见过Perl的代码,人文气息没闻出来,但我怀疑有乙醚气息&&看一会就觉得晕晕乎乎的。&
众人大笑。
&有人仅用一行Perl代码就实现了RSA算法,你看了那还不得当场晕倒啊?&冒号打趣道,&Perl的各种魔符好似一把把锋利的剪刀,做起文本裁剪之类的工作来游刃有余。这是它最大的长处,当初Perl就是Wall用来做Unix系统管理的,以后在CGI上的广泛应用也得益于此。这也赋予Perl极强的粘合力,因而有&internet上的胶带(duct tape)&的说法。它又号称瑞士军刀,精练而复杂,实用而强大。但Perl过于灵活自由,缺乏规范,影响了程序的可读性、一致性、整洁性和可维护性。不熟悉该语言的固然如读天书,熟悉语言而不熟悉问题的也颇费思量。相比之下Python被认为是Perl有力的挑战者,不仅在于它天然的OO设计和丰富的类库,更重要的是它对程序员友好度大大超过Perl。Python也有一系列的被称为禅(Zen)的哲学,不少与Perl是针锋相对的。比如:Perl认为做一件事可以有多种方法,而Python认为一件事应该最好只有一种方法;Perl追求语言的表现力,Python追求简单优雅;Perl喜欢隐性暗示,Python强调显性明示;Perl强调紧凑,Python强调松散; Perl的语法和语义丰富,Python的语法和语义简单而类库丰富。或许Python最让人不习惯的是它对空白符敏感性。&
引号感到惊奇:&对空白符敏感?这个倒真怪异。&
冒号见惯不怪:&虽然有点违反习惯,但非常符合Python一贯的规范简洁的风格&&一方面从语法上保证了良好的编码风格;另一方面,每个代码块不再需要起始的大括号或begin/end之类的,减少了的代码行数。顺便插一句,另外一种优雅的语言Haskell同样对空白符敏感,或许优雅正是来自对细节和规范的重视吧。此外许多人抱怨Python中的自引用self太多,殊不知这也是它倡导显式表达的一种体现。总的看来,Python主要的问题还是在性能效率上不尽如人意。&
叹号好奇地问:&Ruby怎么样?据说它将取代Java。&
&不要轻言&取代&二字。&冒号规诫道,&Java没有取代C++,也不会被Ruby取代,至多只是一种再分配。不过Ruby的确是门很可爱的语言,兼具Perl的表现力和Python的可读性。Ruby背后最具特色的理念是:关注程序员使用语言时的感受超过语言本身的功能。通俗地说,兵器的称手比锋利更重要;文雅地说,应给予程序员更多的人文关怀。就拿代码块(block)和迭代器(iterator)来说,虽然均非Ruby首创,但其语法最为赏心悦目。类似的例子比比皆是。Ruby的元编程能力特别强,也是它高度灵活的一种体现,但并不是所有人都喜欢这种风格。Ruby的主要弱点有两个:一个与Python类似,在性能上还有待提高;另一个是它的线程由用户空间(user space)而不是内核空间(kernel space)来管理,不能充分利用多核或多CPU。真正让Ruby变得炙手可热的是web应用框架 Ruby on Rails(RoR)的成功,它们还催生了Java平台上的Groovy语言和Groovy on Grails框架。RoR奉行的CoC(Convention over Configuration)和DRY(Don&t repeat yourself )原则以及MVC架构看似了无新意,但与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影。&
逗号有些怀疑:&框架竟然捧红了语言,框架真有这么重要吗?&
&如果web应用中动态页面较少或业务逻辑不复杂,框架的价值并不大。以前CGI编程就是往Perl之类的代码中嵌入HTML代码,如同Java中的Servlet;PHP则单纯地在HTML代码中插入PHP代码,如同早期的JSP。没有MVC,也不管什么三层架构,更没有ORM。但是&&&冒号拖了个转折音,&一旦业务逻辑变得复杂,开发人员增多,手工作坊式编程开始捉襟见肘,引入框架这个流水生产线来提高生产力便是大势所趋。&
句号不解:&我想Perl、Python和PHP一定也有不少框架,Java中的框架更是泛滥成灾,何以独独RoR脱颖而出?&
冒号作出分析:&正值web2.0和敏捷开发(agile development)的概念流行之际,RoR将AJAX与Ruby组合在一起成为绝佳的回应。以前各种web应用框架是不少,但在RoR之前轻量级套餐式解决方案并不多。Perl中的Catalyst、Python中的Pylon还有PHP中的CakePHP等应是效仿之作。因此RoR出现的时机可说是不早不晚,正当其时。此外,Perl和PHP由于过于流行,反而有不少的历史包袱,人们习惯了将表示逻辑和业务逻辑编织在一起。至于Java企业解决方案,框架太多,搭配组合更多,增加了选择的难度。即使采用最常见的轻量级SSH(Struts+Spring+Hibernate)组合,维护起来也比RoR繁杂得多。&
叹号愈发担忧:&听这意思,Java还是危险啊!&
&言之过早。&冒号不以为然,&首先RoR还有待进一步检验,目前无论是应用广度还是深度上尚无法与Java相提并论;其次Java在性能、安全等方面还是有不少优势,而这些对于大型和关键性的应用来说尤为重要。即使在中小型web应用中,RoR较之PHP还远为不及。&
问号接下话题:&PHP为何如此流行?&
&因为它简单、专一。&冒号答得很干脆,&与Python和Ruby一开始就定位通用语言不同,PHP是专为网络而生的。同早期的Perl相似,PHP起初主要起文本过滤器的作用,只不过Perl多处理文件流(file stream),而PHP多处理套接字流(socket stream)。PHP的语法简单,且为网络应用度身定造,受到网络开发人员的追捧当在情理之中。它虽很实用很流行,但并不完美。比如:变量名大小写敏感而函数名大小写不敏感;函数命名规则不一致;不支持namespace和unicode;与Perl一样,它的对象模型不是先天的,直到PHP 5才真正完善;对线程支持不足;相比Perl、Python和Ruby,它的功能稍显单薄等等。&
引号突然想起:&我记得您在第一堂课提到PHP还能用于桌面应用。&
&不仅PHP,Perl、Python还有Ruby,都能作为前台语言来开发命令行或图形界面的应用。同样地,VB、Delphi和JavaScript也能作为后台语言。现代的程序语言既有自己的专长,又向通用化和全能化发展,以争取更多的生存空间。试想一下,现代的程序员又何尝不是如此呢?&言及于此,冒号收住话题,&语言简评告一段落,还有不少既有趣又有用的语言,在此就不一一评说了。我们看到,每种编程语言都有其独特的惯例用法和哲学理念,它们与编程范式一道形成了语言的编程风格。体悟愈深者编程语感愈强,思维与语言愈交融无碍,渐从必然王国走向自由王国。&
逗号满怀憧憬:&那是不是一种人剑合一的境界?&
&或许人器合一更准确吧,程序员可不能只会一种兵器哟。&冒号故意抠他的字眼,&现在请大家每人写一句对本节课的感言。&
众人沉思片刻,齐齐挥笔而就&&
叹号&&没有最好的语言,只有最合适的语言。 逗号&&没有糟糕的语言,只有糟糕的程序员。 问号&&没有一种语言是万能的,只会一种语言是万万不能的。 引号&&废除对语言的宗教信仰,建立对语言的哲学思维。 句号&&编程就是在人脑和电脑之间寻找最佳平衡点的过程。
冒号读罢大悦,顺手一掌拍出五记马屁:&精彩之极!可谓字字珠玑、句句联璧啊。兹决定,给诸位的奖赏是&&立时下课!&众人欣然领赏而去。
比起Java平台和.NET平台,动态语言轻便灵活、开发效率高,但整合凝聚力还不够,在运行效率、类型安全、可用资源、开发工具、技术支持以及影响力等方面也有一定差距,故通常作为轻量级的解决方案。 LAMP是由Linux、Apache、MySQL和包括PHP、Perl、Python或Ruby在内的脚本语言组成的网络开发平台,具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点。 Perl精练、复杂、强大、灵活、自由、隐晦、表现力强,但规范性、可读性、一致性、整洁性和可维护性较差。 Python优雅规范、简洁明晰、易学易用、类库丰富,但效率稍差,有些人不喜欢它对空白符敏感的特性。 Ruby语法精巧、高度灵活,兼具Perl的表现力和Python的可读性,尤其注重程序员的感受,但其性能和线程模型尚有待改进。 PHP简单、专一、实用、流行,在但相比其他三种语言,在语法和功能上稍有欠缺。 RoR是一种轻量级套餐式的web应用解决方案,是由好的设计(MVC架构和CoC、DRY原则)加上好的语言(Ruby)在好的时机(web2.0和敏捷开发风行之际)打造出的好的框架。 静态语言与动态语言从语言特征到运行环境都在逐渐融合。 程序员应该与程序语言一样,既要有自己的专长,又要向通用化和全能化发展。 编程语言惯例用法、哲学理念和编程范式形成了语言的编程风格。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解
tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解
[摘要:tesseract-ocr辨认英文战中文图片笔墨和扫描图片真例讲授 本文参考 .cn/s/blog_4aacji7.html 完成,正在那里谢谢该文章的做者。 OCR (Optical Character Recognition):光教字符辨认]
tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解
本文参考.cn/s/blog_4aacji7.html实现,在这里感谢该文章的作者。
OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。
Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布。当前版本为3.02
项目下载地址为:http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe
Windows cmd命令行使用Tesseract-OCR引擎识别手机号码和图片中的文字:
1、下载安装Tesseract-OCR引擎(3.0版本+才支持中文识别)
&tesseract-ocr-setup-3.02-02.exe.
下载完后进行安装,默认情况下安装程序会给你配置系统环境变量,以指向安装目录(之后可以通过DOS界面在任意目录运行tesseract)。安装完成后目录如下:
tessdata 目录存放的是语言字库文件,和在命令行界面中可能用到的参数所对应的文件. 这个安装程序默认包含了英文字库。
如果想能识别中文,可以到/p/tesseract-ocr/downloads/list下载对应的语言的字库文件.一般google访问不了,请到这里下载即可,
简体中文字库文件下载地址为:http://download.csdn.net/detail/wanghui1567下载完成后解压,然后将该文件剪切到tessdata目录下去就可以了。
2、使用Tessract-OCR引擎识别验证码
打开DOS界面,输入tesseract:
如果出现如上输出,表示安装正常。
命令格式:
tesseract 图片名 输出文件名 -l 字库文件 -psm pagesegmode 配置文件
识别数字:
我准备了一张验证码123.png 手机号码的图片,放在F:IDOLa|目录下
运行的命令行如下,我自己的命令行工具做了属性调整背景是白色的。
表示识别后生成一个result123.txt 打开文件如下:
识别中文:
我准备了一张验证码234.png &中国识别测试&个字的图片,放在F:IDOLa目录下如图:
运行的命令行如下:
表示识别后生成一个result234.txt 打开文件如下:
识别中文和英文:
网上找了一张图片,有中文有英文的图片:
运行命令如下:
结果如下:中文识别还不是太好啊!
tesseract OCR.jpg result -l chi_sim -psm 7 nobatch
-l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为 .raineddata 简体中文字库文件名为: chi_sim.traineddata)
-psm 7 表示告诉tesseract code.jpg图片是一行文本这个参数可以减少识别错误率. 默认为 3
configfile 参数值为tessdataconfigs 和 tessdatatessconfigs 目录下的文件名.
感谢关注 Ithao123Python频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
IThao123周刊利用php_imagick实现复古效果的方法
php_imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能。
ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式 的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。
php_imagick程序示例
1.创建一个缩略图并显示出来
header('Content-type: image/jpeg');
$image = new Imagick('image.jpg');
// If 0 is provided as a width or height parameter,// aspect ratio is maintained
$image-&thumbnailImage(100, 0);
2.创建一个目录下的缩略图,并保存
$images = new Imagick(glob('images/*.JPG'));
foreach($images as $image) {
// Providing 0 forces thumbnailImage to maintain aspect ratio
$image-&thumbnailImage(1024,0);
$images-&writeImages();
3.缩略GIF动画图片
/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");
/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame-&thumbnailImage(50, 50);
/* Set the virtual canvas to correct size */
$frame-&setImagePage(50, 50, 0, 0);
}/* Notice writeImages instead of writeImage */
$im-&writeImages("example_small.gif", true);
利用php_imagick实现复古效果的方法
先来看下效果图
复古效果展示
要实现以上效果,我们先用Photoshop用以下步骤实现。
新建图层,使用颜色#C0FFFF填充后,不透明度设为44%,图层混合模式为柔光
新建图层,使用颜色#000699填充后,不透明设置为48%,图层混合模式为排除
用PHP代码,也就只需要按照以上步骤实现即可,代码如下:
//打开图片
$im = new Imagick('./hebe.jpg');
//新建图层,使用颜色`#C0FFFF`填充后,不透明度设为`44%`
$layer = new Imagick();
$layer-&newImage($im-&getImageWidth(), $im-&getImageHeight(), '#C0FFFF');
$layer-&setImageOpacity (0.44);
//叠加到原图上,图层混合模式为`柔光`
$im-&compositeImage($layer, Imagick::COMPITE_SOFTLIGHT, 0, 0);
//新建图层,使用颜色`#000699`填充后,不透明设置为`48%`
$layer = new Imagick();
$layer-&newImage($im-&getImageWidth(), $im-&getImageHeight(), '#000699');
$layer-&setImageOpacity (0.48);
//叠加到原图上,图层混合模式为`排除`
$im-&compositeImage($layer, Imagick::COMPITE_EXCLUSION, 0, 0);
$im-&writeImage('./vintage.jpg');
以上就是利用php_imagick实现复古效果的方法,文章通过示例代码介绍的还是很详细的,感兴趣的朋友们自己敲敲代码更能方便理解,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
------分隔线----------------------------
------分隔线----------------------------
你可能对下面内容感兴趣:

我要回帖

更多关于 python实现单例模式 的文章

 

随机推荐