您的位置:首页 > 编程语言 > MATLAB

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

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

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

当时想到的解决办法就是利用矩阵,自己在矩阵上画图,这样就复杂了很多:

1. 首先先要要根据两个点,在矩阵上连接成一条直线(这儿要用到一点图形学上的方法);

2. 然后将各条线组合成一个多边形,并将多边形围成的区域着色(这一步还好,不用在去学习图形学的知识了(^_^),直接使用
imfill
函数就好了);

3. 最后一步,要将各个多边形图像层叠起来,形成一个图像,这里要理解alpha(透明度)的概念,并理解有透明度的图像在叠加时像素的计算方式(其中f指前景,b指背景,α为alpha值,参见维基百科):



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

代码地址 github

MATLAB程序优化

未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 绘制 图像