Python实现PS滤镜中马赛克效果示例


Posted in Python onJanuary 20, 2018

本文实例讲述了Python实现PS滤镜中马赛克效果。分享给大家供大家参考,具体如下:

这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如下:

from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import random
import numpy as np
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
img = img_as_float(img)
img_out = img.copy()
row, col, channel = img.shape
half_patch =10
for i in range(half_patch, row-1-half_patch, half_patch):
  for j in range (half_patch, col-1-half_patch, half_patch):
    k1 = random.random() - 0.5
    k2 = random.random() - 0.5
    m=np.floor(k1*(half_patch*2 + 1))
    n=np.floor(k2*(half_patch*2 + 1))
    h=int((i+m) % row)
    w=int((j+n) % col)
    img_out[i-half_patch:i+half_patch, j-half_patch:j+half_patch, :] =\
            img[h, w, :]
plt.figure(1)
plt.imshow(img)
plt.axis('off')
plt.figure(2)
plt.imshow(img_out)
plt.axis('off')
plt.show()

附:PS 滤镜算法原理 ——马赛克

% method : 利用邻域的任意一点代替当前邻域所有像素点
%%%% mosaic
clc;
clear all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
Image=imread('4.jpg');
Image=double(Image);
size_info=size(Image);
height=size_info(1);
width=size_info(2);
N=11;  % 控制邻域大小
Image_out=Image;
for i=1+N:N:height-N
  for j=1+N:N:width-N
    k1=rand()-0.5;
    k2=rand()-0.5;
    m=(k1*(N*2-1));
    n=(k2*(N*2-1));
    h=floor(mod(i+m,height));
    w=floor(mod(j+n,width));
    if w==0;
      w=width;
    end
    if h==0
      h=height;
    end
   Image_out(i-N:i+N,j-N:j+N,1)=Image(h,w,1);
   Image_out(i-N:i+N,j-N:j+N,2)=Image(h,w,2);
   Image_out(i-N:i+N,j-N:j+N,3)=Image(h,w,3);
  end
end
imshow(Image_out/255);

原图

Python实现PS滤镜中马赛克效果示例

效果图

Python实现PS滤镜中马赛克效果示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
举例讲解Python中的Null模式与桥接模式编程
Feb 02 Python
Python实现一个简单的验证码程序
Nov 03 Python
django从请求到响应的过程深入讲解
Aug 01 Python
python爬虫的一个常见简单js反爬详解
Jul 09 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
python调用接口的4种方式代码实例
Nov 19 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
python excel多行合并的方法
Dec 09 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
python实现代码审查自动回复消息
Feb 01 Python
Python使用pyenv实现多环境管理
Feb 05 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
浅析python协程相关概念
Jan 20 #Python
Python实现可自定义大小的截屏功能
Jan 20 #Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 #Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 #Python
Python搭建FTP服务器的方法示例
Jan 19 #Python
python re模块findall()函数实例解析
Jan 19 #Python
Python enumerate索引迭代代码解析
Jan 19 #Python
You might like
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
js实现列表按字母排序
2020/08/11 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
Django使用rest_framework写出API
2020/05/21 Python
python中def是做什么的
2020/06/10 Python
Python定义一个Actor任务
2020/07/29 Python
python设置中文界面实例方法
2020/10/27 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
省优秀教师事迹材料
2014/01/30 职场文书
综合实践教学反思
2014/01/31 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
《角的度量》教学反思
2016/02/18 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python