matlab练习程序(Hilbert图像置乱)】的更多相关文章

正好刚写了Hibert生成曲线,不如再加一篇应用的程序. 关于Hilbert图像置乱,我在网上搜的应用领域主要集中在数字水印和图像加密上,而这两个领域我都没怎么接触过. 大部分的图像置乱都是如下图的置乱1所示,至于置乱2则是我不小心生成的. 置乱1是先把原图按hilbert曲线进行赋值,拉成一条一维数组,再reshape成一副图像. 置乱2是先把原图reshape成一维数组,然后再按hilbert曲线进行赋值,生成一副图像. 我感觉都差不多,网上置乱1更常见些,置乱2好像就没见过,不过这都算置乱…
十一没什么事干,接着看图像算法. 这个球面化算法最初是在ps上的球面化滤镜中看到的,感觉挺有意思,就研究了一下. 算法的详细推导可以在这篇博客中找到,我比较懒,只在纸上推了一遍,就不在博客上编辑了. 不过这里还是要把逆变换公式写一下. 公式如下: 其中R为球的半径,x,y为目标图像像素坐标,xx,yy为源图像像素坐标. 原图: 球面化后: matlab代码如下: clear all;close all;clc; img=imread('lena.jpg'); [h w]=size(img); i…
最近接触点云比较多,如果把图像投影到点云应该挺有意思. 首先需要载入图像,然后做个球或其他什么形状的点云,这里可以参考球坐标公式. 最后通过pcshow将像素输出到点云上即可. 原图: 投影后的点云: 代码如下: clear all; close all; clc; img = imread('lena.jpg'); [m,n,d]=size(img); I=reshape(img,[],d); R=; x=zeros(m*n,); y=zeros(m*n,); z=zeros(m*n,); n…
处理原理就是将邻域像素平均值赋给邻域中的所有像素. 这里将处理方法分为了带线条和不带线条,带线条处理后的视觉效果要好些. 原图: 处理结果(不带线条): 处理结果(带线条): 代码处理的是带线条的情况. matlab代码如下: clear all; close all;clc; img=imread('lena.jpg'); imshow(img,[]); [h w]=size(img); imgn=zeros(h,w); n=; nw=floor(w/n)*n; nh=floor(h/n)*n…
自从上次写了Hilbert图像置乱之后,就对图像置乱研究了一下,发现这里面也是有很多置乱算法的. Arnold也算一种比较主要的置乱算法,算法由以下变换公式产生: 这里a和b是参数,n是迭代次数,N是图像的高或宽. 有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是用这个软件求的. 公式如下: 两个变换矩阵正好是求逆的关系吧,手算也出来了,不过顺便熟悉一下Mathematica,何乐不为呢. 处理结果如下: 原图: 置乱后: 恢复后: matlab代码如下…
matlab练习程序(SUSAN检测) SUSAN算子既可以检测角点也可以检测边缘,不过角点似乎比不过harris,边缘似乎比不过Canny.不过思想还是有点意思的. 主要思想就是:首先做一个和原图像等大的目标图像.然后用一个圆形的模板,用模板去遍历原图像每个像素,把模板内的每个像素都和模板中心像素比较,如果灰度小于一个阈值,那么就对目标图像当前和原图像相同位置的像素加一,直到结束.目标图像中在原图像是角点的位置就会取局部极小,所以做一个反向的相减.img=max(img)-img,if img…
matlab练习程序(HOG方向梯度直方图)http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html HOG(Histogram of Oriented Gradient)方向梯度直方图,主要用来提取图像特征,最常用的是结合svm进行行人检测. 算法流程图如下(这篇论文上的): 下面我再结合自己的程序,表述一遍吧: 1.对原图像gamma校正,img=sqrt(img); 2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率. 3.…
(一)图像几何变换理论知识 (1)图像的平移与比例 图像的平移很简单,平移前后的坐标分别为(x,y)和(x',y'),则满足的关系式为 x'= x +Tx: y'= y +Ty: 其中Tx与Ty分别为对应的偏移量. 图像的比例也很简单,可以描述为:x'=S_x * x;  y'=S_y * y; 那么上述的关系怎么用一个矩阵来表示呢?一个很重要的矩阵来了,那就是变换矩阵T,并且对于二维坐标下的点,一般转化为笛卡尔坐标系下进行计算,用一个三维点表示二维的,只不过把最后一项值置为1,这样一个二维坐标…
随机游走类似布朗运动,就是随机的向各个方向走吧. 虽然代码没什么技术含量,不过产生的图像实在太漂亮了,所以还是贴上来吧. 产生的图像: matlab代码如下: clear all;close all;clc n=; %游走的步数.也是图像中像素个数,有些位置可能重复,所以白像素小于等于n x=; %初始x坐标 y=; %初始y坐标 pix=zeros(n,); %游走产生的像素坐标 neighbour=[- -;- ;- ; -; ; -; ; ]; %当前像素邻域 :n r=floor(+*r…
介绍一下奇异值分解来压缩图像.今年的上半年中的一篇博客贴了一篇用奇异值分解处理pca问题的程序,当时用的是图像序列,是把图像序列中的不同部分分离开来.这里是用的不是图像序列了,只是单单的一幅图像,所以直接就对图像矩阵进行svd了. 吴军的<数学之美>里其实已经介绍过用svd进行大数据的压缩了,不过我这里还是针对图像进行介绍一下吧.比如一幅1000*1000的图像A,存储就需要1000000个像素了.我们对A进行svd分解,则A=USV’,如果rank(A)=r,那么U就为1000*r的矩阵,S…