网络编程
位置:首页>> 网络编程>> Python编程>> Python实现PS滤镜中马赛克效果示例

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

作者:Matrix_11  发布时间:2021-05-25 20:56:59 

标签:Python,滤镜,马赛克

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/matrix_space/article/details/72305574

0
投稿

猜你喜欢

  • 在学习python的时候,被推荐了使用PyCharm这款IDE,但是在import包的时候却发生了问题- -无法引入,但是明明通过了pip进
  • 1.为模块nester创建文件夹nester,其中包含:nester.py(模块文件):"""这是"
  • 说到Javascript的类继承,就必然离不开原型链,但只通过原型链实现的继承有着不少缺陷。无参数类继承的问题先看一段示例代码,实现B继承于
  • 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
  • IE的for...in循环存在严重的缺陷,除了性能低下外,有许多属性不可遍历,著名有这三兄弟:constructor ,toString ,
  • 要写爬虫爬取大量的数据,就会面临ip被封的问题,虽然可以通过设置延时的方法来延缓对网站的访问,但是一旦访问次数过多仍然会面临ip被封的风险,
  • 描述max() 方法返回给定参数的最大值,参数可以为序列。语法以下是 max() 方法的语法:max( x, y, z, .... )参数x
  • ASP 错误代码 说明 ASP 0100 内存不足 ASP 0101 意外错误 ASP 0102 需要字符串输入 ASP 0103 需要数字
  • 代码如下:<%@LANGUAGE="VBSCRIPT"%> <% option&n
  • WEB标准,从我大二开始接触到毕业后的第一份工作“页面重构工程师”,从接触标准到蓝色理想标准区版主的四年多时间里,WEB标准已经成为我生活中
  • 另:@会影响效率如:@mysql_connect()    可以导出错误,但会影响效率。mysql与mysqli的区别:
  • 写在前面的话关于《交互设计实用指南》,我们最近收到很多朋友的反馈,有支持的也有批评的,在此一并感谢了,有你们的关注,我们才能走得更远。《交互
  • 本文实例为大家分享了PyQt5单行文本框展示的具体代码,供大家参考,具体内容如下QLineEdit 是一个允许输入和编辑纯文本的单行控件。系
  • Nextcloud 是一款自由 (开源) 的类 Dropbox 软件,由 ownCloud 分支演化形成。它使用 PHP 和 JavaScr
  • 现在的电脑差不多都是固态硬盘了,速度很快,但容量不会太大,经常会出现磁盘空间不足的情况,怎么办,删除那些不重要的最大的文件是最有效的办法。那
  • 一.错误分类1. 语法错误也称为解析错误,发生在传统编程语言的编译时,在JavaScript中发生在解释时,这些错误是由代码中的意外字符直接
  • 前言最近微信小游戏跳一跳大热,自己也是中毒颇久,无奈手残最高分只拿到200分。无意间看到教你用Python来玩微信跳一跳一文,在电脑上利用a
  • 前言故事要从上面这张表情包开始讲起,看到这张表情包之后,我突发奇想,觉得可以将室友上班摸鱼的照片拼接起来,做成表情包叫他起床 激励他学习!!
  • 本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下题目期末项目 一. 项目要求利用函数实现通讯
  • Python 实现删除某路径下文件及文件夹的脚本#!/usr/bin/env pythonimport osimport shutildel
手机版 网络编程 asp之家 www.aspxhome.com