使用matlab绘制春联

2024-01-08 13:58
文章标签 matlab 使用 绘制 春联

本文主要是介绍使用matlab绘制春联,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

受到了 天元浪子 老师的启发
写了一个类似的绘制春联的程序
已给老师投票,希望老师不要打我
天元老师的博文:
用Python写春联:抒写最真诚的祝福和最美好的祈愿
——————————————————————————

matlab绘制春联
效果:
在这里插入图片描述
在这里插入图片描述


使用方法:
在这里插入图片描述


完整代码:

function SpringScrolls(stringName,type,fontSize)
%stringName is the parameter matrix of string.
%the type can be 'rows' or 'cols'.
warning off
string=stringName;
if nargin<2type='rows';
end
switch 1case ~isempty(regexpi(string,',')),pause_location=regexpi(string,',');case ~isempty(regexpi(string,',')),pause_location=regexpi(string,',');case ~isempty(regexpi(string,' ')),pause_location=regexpi(string,' ');   
end
len_string=length(string);
if nargin<3if strcmp(type,'rows'),fontSize=25+0.002*30/max(2/1080,max(pause_location-1,len_string-pause_location)/1920);endif strcmp(type,'cols'),fontSize=20+0.002*30/max(2/1920,max(pause_location-1,len_string-pause_location)/1080);end
end
disp(fontSize);
BG=[];BG_cell=imread('背景图.jpg');
[m,n,~]=size(BG_cell);
for i=1:2for j=1:max(pause_location-1,len_string-pause_location)if strcmp(type,'rows'),BG((i-1)*(m+10)+1:(i-1)*(m+10)+m,(j-1)*n+1:j*n,:)=BG_cell(:,:,:);endif strcmp(type,'cols'),BG((j-1)*n+1:j*n,(i-1)*(m+10)+1:(i-1)*(m+10)+m,:)=BG_cell(:,:,:);endend
end
if strcmp(type,'rows'),BG(m+1:m+10,1:j*n,:)=0.94*255*ones(10,j*n,3);end
if strcmp(type,'cols'),BG(1:j*n,m+1:m+10,:)=0.94*255*ones(j*n,10,3);end
BG=uint8(BG);
imshow(BG)
hold on;
for k=1:pause_location-1if strcmp(type,'rows'),text((k-1)*m+m/2,n/2,string(k),'fontsize',fontSize,'FontName','华文行楷','HorizontalAlignment', 'center');endif strcmp(type,'cols'),text(n/2,(k-1)*m+m/2,string(k),'fontsize',fontSize,'FontName','华文行楷','HorizontalAlignment', 'center');end
end
for k=1:len_string-pause_locationif strcmp(type,'rows'),text((k-1)*m+m/2,n+10+n/2,string(pause_location+k),'fontsize',fontSize,'FontName','华文行楷','HorizontalAlignment', 'center');endif strcmp(type,'cols'),text(n+10+n/2,(k-1)*m+m/2,string(pause_location+k),'fontsize',fontSize,'FontName','华文行楷','HorizontalAlignment', 'center');end
end
get(text)
end

注:该程序的m文件应和下图放在同一文件夹中,并将图片命名为“背景图.jpg”
在这里插入图片描述

这篇关于使用matlab绘制春联的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583685

相关文章

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

C#中SortedSet的具体使用

《C#中SortedSet的具体使用》SortedSet是.NETFramework4.0引入的一个泛型集合类,它实现了一个自动排序的集合,内部使用红黑树数据结构来维护元素的有序性,下面就来介绍一下如... 目录基础概念主要特性创建和初始化基本创建方式自定义比较器基本操作添加和删除元素查询操作范围查询集合运

C# Opacity 不透明度的具体使用

《C#Opacity不透明度的具体使用》本文主要介绍了C#Opacity不透明度的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录WinFormsOpacity以下是一些使用Opacity属性的示例:设置窗体的透明度:设置按钮的透

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Integration Redis 使用示例详解

《SpringIntegrationRedis使用示例详解》本文给大家介绍SpringIntegrationRedis的配置与使用,涵盖依赖添加、Redis连接设置、分布式锁实现、消息通道配置及... 目录一、依赖配置1.1 Maven 依赖1.2 Gradle 依赖二、Redis 连接配置2.1 配置 R

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控