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使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
python3 shelve模块的详解
Jul 08 Python
Python使用getpass库读取密码的示例
Oct 10 Python
《Python学习手册》学习总结
Jan 17 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
python有序查找算法 二分法实例解析
Feb 18 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
jupyter notebook实现显示行号
Apr 13 Python
python 调用Google翻译接口的方法
Dec 09 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
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
使用 php4 加速 web 传输
2006/10/09 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
仿微博字符限制效果实现代码
2012/04/20 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
js选项卡的制作方法
2017/01/23 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
python计算N天之后日期的方法
2015/03/31 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
总务岗位职责
2013/11/19 职场文书
后勤人员岗位职责
2013/12/17 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
文明青少年标兵事迹材料
2014/01/28 职场文书
村长贪污检举信
2014/04/04 职场文书
婚前协议书范本
2014/04/15 职场文书
区级文明单位申报材料
2014/05/15 职场文书
人力资源部岗位职责
2015/02/11 职场文书
质量承诺书格式范文
2015/04/28 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
数据库连接池
2021/04/06 MySQL
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
如何判断pytorch是否支持GPU加速
2021/06/01 Python
python利用while求100内的整数和方式
2021/11/07 Python