使⽤多边形绘制图像(MATLAB)
介绍了实现的原理以及⾃⼰的使⽤JS实现的版本,其实在⼀开始⾃⼰并不是使⽤JS使⽤,⽽使⽤MATLAB,最后实现的效果不是很好(运⾏时间还是相对较长),但是⾃⼰还是从中学到了诸如MATLAB程序优化等⽅⾯的知识。
⼀开始使⽤了Matlab,因为感觉MATLAB⽐较擅长矩阵运⾏,可能在图像的操作上有优势,但是⽤起来后傻眼了,MATLAB可以将多边形绘制到figure,但是没有办法取得绘制出来的图像的像素信息,这样⼦的话我就没有办法和原图像进⾏⽐较,已确定当前的适应度值是多少,程序也就没有办法再进⾏下去。
当时想到的解决办法就是利⽤矩阵,⾃⼰在矩阵上画图,这样就复杂了很多:
1. ⾸先先要要根据两个点,在矩阵上连接成⼀条直线(这⼉要⽤到⼀点图形学上的⽅法);
2. 然后将各条线组合成⼀个多边形,并将多边形围成的区域着⾊(这⼀步还好,不⽤在去学习图形学的知识了(^_^),直接使⽤imfill函数就好了);
3. 最后⼀步,要将各个多边形图像层叠起来,形成⼀个图像,这⾥要理解alpha(透明度)的概念,并理解有透明度的图像在叠加时像素的计算⽅式(其中f指前景,b指背景,α为alpha值,参见):
imfill函数的原理这样才算基本完成了绘制图像( ̄o ̄) . z Z,⽽其他地⽅的逻辑基本跟JS版本的相同。
代码地址
MATLAB程序优化
未完待续
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论