使用多边形绘制图像(MATLAB)

上一篇博客介绍了实现的原理以及自己的使用JS实现的版本,其实在一开始自己并不是使用JS使用,而使用MATLAB,最后实现的效果不是很好(运行时间还是相对较长),但是自己还是从中学到了诸如MATLAB程序优化等方面的知识。

一开始使用了Matlab,因为感觉MATLAB比较擅长矩阵运行,可能在图像的操作上有优势,但是用起来后傻眼了,MATLAB可以将多边形绘制到figure,但是没有办法取得绘制出来的图像的像素信息,这样子的话我就没有办法和原图像进行比较,已确定当前的适应度值是多少,程序也就没有办法再进行下去。

当时想到的解决办法就是利用矩阵,自己在矩阵上画图,这样就复杂了很多:
1. 首先先要要根据两个点,在矩阵上连接成一条直线(这儿要用到一点图形学上的方法);
2. 然后将各条线组合成一个多边形,并将多边形围成的区域着色(这一步还好,不用在去学习图形学的知识了(^_^),直接使用imfill函数就好了);
3. 最后一步,要将各个多边形图像层叠起来,形成一个图像,这里要理解alpha(透明度)的概念,并理解有透明度的图像在叠加时像素的计算方式(其中f指前景,b指背景,α为alpha值,参见维基百科):

这里写图片描述

这样才算基本完成了绘制图像( ̄o ̄) . z Z,而其他地方的逻辑基本跟JS版本的相同。

代码地址 github

MATLAB程序优化

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值