matlab练习程序(碎片)
这个算法是对photoshop中滤镜->像素化->碎片这个功能的学习。
PS这个功能好像不带参数,不过我这里有滤波半径r可以进行控制。
因为我是看效果猜算法的,效果肯定有所区别。
我的想法是对图像以r为长度,在上下左右四个方向做位移,然后进行混合。
代码还是很简单,就不详细介绍了。
处理效果如下:
原图:

处理后效果:

PS碎片效果:

matlab代码如下:
clear all;close all;clc
img=double(imread('lena.jpg'));
[h w]=size(img);
imshow(img,[])
r=; %位移距离
%向上下左右四个方向移位,然后再混合
%ps也许是对左上、右上、左下、右下四个角的方向做的位移
left=zeros(h+*r,w+*r);
right=zeros(h+*r,w+*r);
top=zeros(h+*r,w+*r);
bottom=zeros(h+*r,w+*r);
%这里做了一个图像放大的处理,防止最后图像边缘产生突变
left(r+:h+r,:w+r)=imresize(img,[h,w+r]);
right(r+:h+r,r+:w+*r)=imresize(img,[h,w+r]);
top(:h+r,r+:w+r)=imresize(img,[h+r,w]);
bottom(r+:h+*r,r+:w+r)=imresize(img,[h+r,w]);
imgn=0.25*(left+right+top+bottom);
imgn=imgn(r+:h+r,r+:w+r);
figure;imshow(imgn,[])
matlab练习程序(碎片)的更多相关文章
- matlab练习程序(SUSAN检测)
matlab练习程序(SUSAN检测) SUSAN算子既可以检测角点也可以检测边缘,不过角点似乎比不过harris,边缘似乎比不过Canny.不过思想还是有点意思的. 主要思想就是:首先做一个和原图像 ...
- (转)matlab练习程序(HOG方向梯度直方图)
matlab练习程序(HOG方向梯度直方图)http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html HOG(Histogram o ...
- matlab示例程序--Motion-Based Multiple Object Tracking--卡尔曼多目标跟踪程序--解读
静止背景下的卡尔曼多目标跟踪 最近学习了一下多目标跟踪,看了看MathWorks的关于Motion-Based Multiple Object Tracking的Documention. 官网链接:h ...
- matlab练习程序(透视投影,把lena贴到billboard上)
本练习程序是受到了这个老外博文的启发,感觉挺有意思,就尝试了一下.他用的是opencv,我这里用的是matlab. 过去写过透视投影,当时是用来做倾斜校正的,这次同样用到了透视投影,不过更有意思,是将 ...
- matlab练习程序(多圆交点)
最近总是对计算几何方面的程序比较感兴趣. 多圆求交点,要先对圆两两求交点. 有交点的圆分为相切圆和相交圆. 相切圆求法: 1.根据两圆心求直线 2.求公共弦直线方程 3.求两直线交点即两圆切点. 相交 ...
- matlab练习程序(矩形变换为单连通形状)
变换使用的模板必须是单连通的,而且模板中心必须在模板内,如果在模板中打个结或是月牙形,这里的程序就处理不了了. 虽然非单连通模板也有办法处理,不过不是这里要讨论的. 这里用到的方法和矩形变换为圆那片文 ...
- matlab练习程序(渲染三原色)
这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正.相当于标准右手系绕x轴旋转了180度. 将三个点光源放在 r = [0.3,0,0.5];g = [0.3,-0.5*cos(pi/6),-0 ...
- matlab练习程序(生成希尔伯特曲线)
能够使用这样一条线遍历图像中所有的像素,不过这里没有这样做,而只是生成了这样一条曲线. 程序中h,w是最终图像的高和宽,n为希尔伯特曲线阶数. 这里如果n等于log2(h)或log2(w),则图像就全 ...
- matlab练习程序(随机直线采样)
我只是感觉好玩,写了这样一段程序. 原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了. 最后生成了一幅含有很多空洞的图像. 当然,对含有空洞的图像是 ...
随机推荐
- C#中堆和栈的区别分析
线程堆栈:简称栈 Stack托管堆: 简称堆 Heap 使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切.如果我们写出如下两段代码: 1 代码段1: 2 3 ...
- C#之数据分页
方法一:临时datatable 创建临时表,临时变量 DataTable dt = null; //临时表 ; //总分页数 ; //当前页数 ; //每页的数量 加载数据到临时表,该方法测试放到了窗 ...
- poj 2488
http://poj.org/problem?id=2488 题意:就是让马把棋盘都走完,每一个点都要走到,出口就是a,b. #include <stdio.h> #include < ...
- ios NSURLSession completeHandler默认调用quque
注意 , [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSU ...
- ACM/ICPC 之 模拟 (HNUOJ 13391-换瓶模拟)
题意:汽水瓶有三个部分cap+plastic bottle+ label(瓶盖-瓶身-瓶底),给出数据:n为原瓶数,x,y,z为这三个部分可以用相应的数字换取新瓶子,求最大总瓶数. 模拟(暴力) // ...
- C#在类中用调用Form的方法
class 你的类 { private Form1 frm; //构造函数 public 你的类( Form1 form) { frm = form; } //调用form方法 private voi ...
- event.srcElement 用法笔记e.target
event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称. 注意获取的标记都以大写表示,如"TD",&q ...
- Android Volley入门到精通:初识Volley的基本用法
1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行H ...
- Servlet题库
一. 填空题 Servlet中使用Session对象的步骤为:调用 HttpServletRequest.getSession() 得到Session对象,查看Session对象,在会话中保 ...
- HTML标记语法之列表元素
1.无序列表 <ul> <li type=”项目符号类型”></li> <li type=”项目符号类型”></li> <li typ ...