摘要:
接着上一次的融合。对部分算法进行了修改,不过还是有两个主要算法没有添加。当然,如果要应付各种情况,何止还需要两个算法。先看看上一次的结果:这一次的结果:可以看出,两次在图像外层边界处差别还是很大的。效果变好了,不过,代码行数反而变少了。 阅读全文
摘要:
正好刚写了Hibert生成曲线,不如再加一篇应用的程序。关于Hilbert图像置乱,我在网上搜的应用领域主要集中在数字水印和图像加密上,而这两个领域我都没怎么接触过。大部分的图像置乱都是如下图的置乱1所示,至于置乱2则是我不小心生成的。置乱1是先把原图按hilbert曲线进行赋值,拉成一条一维数组,... 阅读全文
摘要:
能够使用这样一条线遍历图像中所有的像素,不过这里没有这样做,而只是生成了这样一条曲线。程序中h,w是最终图像的高和宽,n为希尔伯特曲线阶数。这里如果n等于log2(h)或log2(w),则图像就全为白了,也算是正好遍历所有像素了。当然,n很大的话,图像也是全为白的,不过,那样不算正好遍历吧。代码中生... 阅读全文
摘要:
视频制作软件中一般都会有相邻帧切换的特效,我过去用过vagas好像就有很多切换特效。我想这个也算是其中一种吧,虽然我不确定实际中到底有没有这种切换。实际上我只是下班后太无聊了,写着玩的,没什么高深的东西。从lena图转换为rice图的效果如下:matlab代码如下:clear all;close a... 阅读全文
摘要:
完整的写了一个大算法,大概有500多行matlab,不过还有三个关键算法没有进行集成,全部写完会有700多行吧。不准备使用OpenCV了,这个库暂时满足不了我的需求。以后还要改为C++,工作量还是挺大的。先看下效果吧: 阅读全文
摘要:
提供了两种生成方法,一个是自己编程实现,比较灵活;另一个是调用系统的checkerboard函数,似乎只能生成8*8网格。至于用途,也许可以用来下国际象棋。自己函数生成:系统函数生成:代码如下:clear all;close all;clch=256;w=256;n=8;img=zeros(h,w)... 阅读全文
摘要:
现在计算机的cpu一般都是多核的,而很多程序都没有进行多核优化,这就没有办法充分利用cpu的性能了。比如用vs2010中写一个while(1)循环,在旧电脑上cpu运行是占100%的,而在新的4核电脑上运行则只占25%,似乎没办法再高了。很多地方说用openmp可以发挥多核处理的能力,不过我在程序中... 阅读全文
摘要:
最近对图像坐标的变换很感兴趣啊,这次是将一张图像变换为圆形。变换原理就是按变换前后像素到圆心的距离按比例缩减就行了。改变x,y方向上的系数,应该还可以变换为椭圆,不过我还没有尝试。注意我这里相当于缩小图像了,所以用的是正向插值,如果想生成一个大圆,还是需要逆向插值的。原图如下:处理后效果:matla... 阅读全文
摘要:
不论是过去写的这个转换方法,还是今天看到的这个:string cvt2str( int x ){ int d = x; string ans = ""; while( x > 0 ) { d = x%10; ans = char(d+'0')+an... 阅读全文
摘要:
还记得过去写过径向模糊,不过当时效果似乎不好。这次效果还可以,程序中用的算法是:1.求当前处理点和图像中心点之间的距离r与角度ang;2.通过对r的修改得到径向模糊。3.通过对ang的修改得到旋转模糊。一看代码就能全部明白,不仔细解释了。原图如下:处理后效果:matlab代码如下:clear all... 阅读全文