摘要:
十一没什么事干,接着看图像算法。这个球面化算法最初是在ps上的球面化滤镜中看到的,感觉挺有意思,就研究了一下。算法的详细推导可以在这篇博客中找到,我比较懒,只在纸上推了一遍,就不在博客上编辑了。不过这里还是要把逆变换公式写一下。公式如下:其中R为球的半径,x,y为目标图像像素坐标,xx,yy为源图像... 阅读全文
摘要:
三角形两角的角平分线就能确定内切圆。结果如下:matlab代码如下:clear all;close all;clc;p=rand(3,2); %(x,y)v12=(p(2,:)-p(1,:))/norm(p(2,:)-p(1,:)); %一个顶点两边的归一化向量v13=(p(3,:)-p... 阅读全文
摘要:
三角形两边的垂直平分线就能确定外接圆。结果如下:matlab代码如下:clear all;close all;clc;p=rand(3,2); %(x,y)cen1=(p(1,:)+p(2,:))/2; %三角形一条边中点cen2=(p(2,:)+p(3,:))/2; ... 阅读全文
摘要:
很简单的算法,这里是把每对线段都进行比较了。还有一种似乎先通过x和y排序再进行交点判断的,不过那种方法我还没看太明白。这里的方法如下:1.根据线段的端点求两条直线的交点。2.判断直线的交点是否在两条线段上。结果如下:matlab代码如下:clear all;close all;clc;n=20;p=... 阅读全文
摘要:
原始算法是sphere,我这里简化为circle了。Ritter's求最小包围圆为线性算法,因为非常简单,所以应用非常广泛。该算法求出的圆比最优圆大概会大个5%到20%左右,求最优圆应该可以用Bouncing Bubble算法,以后有机会可以尝试一下。Ritter's算法如下:1.从点集中随机选出两... 阅读全文
摘要:
Bresenham画线算图形学中最基础的知识了,可惜我并没有选修过图形学,所有还是有必要熟悉一下。上一篇用到的画线函数应该算是数值微分法,也是我最常用的一种方法,不过这种方法似乎并不是很好。这里的画线方法比上一种方法好。算法原理如下:过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算... 阅读全文
摘要:
我只是感觉好玩,写了这样一段程序。原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了。最后生成了一幅含有很多空洞的图像。当然,对含有空洞的图像是可以用修复算法修复的。我也尝试修复了一下,用的算法我过去也写过,可以看这里。这一次就不贴修复代码了,那段程... 阅读全文
摘要:
接着上一次的融合。融合算法方面的修改暂时先到这里吧。剩下的工作就是代码改写,我感觉可以出个1.0版了。最终我几乎用C来重写了,没用C++的面向对象特性。不过暂时还是没有改写完,但是也只剩两个函数需要添加了。还是先看下效果吧,顺便和enblend比较一下,这个是我能找到的最好的融合软件了。这里的效果:... 阅读全文