如何使用MATLAB制作 “福寿图“ 以及 “百寿图“
MATLAB 如何 以及 制作 使用
2023-09-11 14:20:18 时间
效果大概是这样的(现在就想着过年会不会太早了hiahiahia):
福寿图
百寿图
这个寿是由一堆小的篆书寿字构成的:
突然好奇用python不规则形状背景词云来做这个可不可以,
素材
这俩的代码都非常简单哈,只需要把特定图片放到特定位置进行组合就好,所以说只要有素材就不难办到,这里就不详细展开来讲啦,素材包在这里:
链接:https://pan.baidu.com/s/1FfxMJAlxbqwqYlrMHPnSXA
提取码: 7u3k
其中最主要的就是包含了一百个寿字素材的longevity.mat素材包,收集不易点个赞叭T▽T
代码
百寿图:
function lifeFig
lifeData=load('longevity.mat');
data=lifeData.data;
lifePic=imread('lifePic.png');
lifePic=imresize(lifePic,[45,45]);
lifePic=rgb2gray(lifePic);
lifePic(lifePic<200)=0;
imshow(lifePic)
newPic=ones([90*45,60*45,3]).*255;
[X,Y]=find(lifePic==0);
for i=1:length(X)
tempPic=data{mod(i-1,100)+1};
newPic((X(i)-1)*90+(1:90),(Y(i)-1)*60+(1:60),:)=tempPic;
end
newPicR=newPic(:,:,1);
newPicG=newPic(:,:,2);
newPicB=newPic(:,:,3);
newPicR(newPic(:,:,1)>150)=0.8000*255;
newPicR(newPic(:,:,1)<=150)=0.9600*255;
newPicG(newPic(:,:,1)>150)=0.2400*255;
newPicG(newPic(:,:,1)<=150)=0.8000*255;
newPicB(newPic(:,:,1)>150)=0.2000*255;
newPicB(newPic(:,:,1)<=150)=0.5600*255;
newPic(:,:,1)=newPicR;
newPic(:,:,2)=newPicG;
newPic(:,:,3)=newPicB;
newPic=uint8(newPic);
imwrite(newPic,'result1.png')
imshow(newPic)
end
福寿图:
function lifeFig2
lifeData=load('longevity.mat');
data=lifeData.data;
fuPic=imread('fuPic.png');
fuPic=rgb2gray(fuPic);
fuPic=imresize(fuPic,[900,900]);
newPic=ones([180*7,180*6,3]).*255;
n=1;
for i=1:13
for j=1:18
tempPic=data{n};
newPic((i-1)*90+(1:90)+30*mod(j,3),(j-1)*60+(1:60),:)=tempPic;
newPic(:,(j-1)*60+(1:4),:)=0;
newPic((i-1)*90+(1:4)+30*mod(j,3),(j-1)*60+(1:60),:)=0;
n=mod(n,100)+1;
end
end
newPic=newPic(1:180*6,:,:);
[xMesh,yMesh]=meshgrid(1:180*6,1:180*6);
rMesh=sqrt((xMesh-540.5).^2+(yMesh-540.5).^2);
newPicR=newPic(:,:,1);
newPicG=newPic(:,:,2);
newPicB=newPic(:,:,3);
newPicR(rMesh>500)=0;newPicR(rMesh>505)=255;
newPicG(rMesh>500)=0;newPicG(rMesh>505)=255;
newPicB(rMesh>500)=0;newPicB(rMesh>505)=255;
newPicR_r=newPicR((540-450)+(1:900),(540-450)+(1:900));
newPicG_r=newPicG((540-450)+(1:900),(540-450)+(1:900));
newPicB_r=newPicB((540-450)+(1:900),(540-450)+(1:900));
newPicR_r(fuPic<150)=fuPic(fuPic<150);
newPicG_r(fuPic<150)=fuPic(fuPic<150);
newPicB_r(fuPic<150)=fuPic(fuPic<150);
newPicR((540-450)+(1:900),(540-450)+(1:900))=newPicR_r;
newPicG((540-450)+(1:900),(540-450)+(1:900))=newPicG_r;
newPicB((540-450)+(1:900),(540-450)+(1:900))=newPicB_r;
newPic(:,:,1)=255-(255-newPicR).*(1-0.8);
newPic(:,:,2)=255-(255-newPicG).*(1-0.24);
newPic(:,:,3)=255-(255-newPicB).*(1-0.2);
newPic=uint8(newPic);
imwrite(newPic,'result2.png')
imshow(newPic)
end
相关文章
- MATLAB学习笔记 实现超简单对对碰游戏
- matlab 生成空间3D椭圆点云
- matlab 点云体素下采样(详细过程版)
- Atitit MATLAB 图像处理attilax总结
- 【负荷预测】基于VMD-SSA-LSTM光伏功率预测(Matlab代码实现)
- 【时间序列预测】海量数据多变化点相关时间序列研究(Matlab代码实现)
- 基于有序模式的度量对多变量时间序列进行非线性分析(Matlab代码实现)
- 【信号处理】基于扩展傅里叶的信号分析(Matlab代码实现)
- 基于MATLAB的车牌识别系统研究(Matlab代码实现)
- 【MATLAB】MATLAB实现功率谱密度分析psd及详细解说
- 【MATLAB】MATLAB 仿真 — 基于matlab的QPSK系统仿真
- MATLAB | 如何绘制github同款日历热力图
- MATLAB | 如何用MATLAB绘制这样有气泡感的网络图
- MATLAB | 老版本如何更加优雅的调整子图空隙,去除白边?
- MATLAB | 如何使用MATLAB绘制雷达图(蜘蛛图)
- MATLAB | 如何绘制二维散点主方向直方图
- MATLAB如何将k线图设置为经典红绿配色?
- MATLAB | 如何在MATLAB中使用python全部colormap配色
- 【MATLAB】matlab 文档使用 ( 文档查询 | 文档层次 | 自带搜索工具 | 帮助命令 | 学习导引 )
- LabVIEW如何调用.m脚本LabVIEW调用MATLAB
- bp神经网络及matlab实现
- 如何做到不消费而精通Matlab?别再四处化缘了!
- Matlab R2018a无法重新加载 /usr/local/MATLAB/R2018a/bin/glnxa64/libmwxcp_dwarf.so
- 【机组组合】两阶段、多周期随机机组组合(SUC)的问题(Matlab代码实现)
- matlab 图像填充
- Matlab使用笔记(七):将PreScan连接MATLAB实现仿真 (附录:自动无人驾驶仿真软件PreScan的应用介绍)
- MATLAB设置启动文件夹为上次退出时的工作文件夹