gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python实现PS滤镜中马赛克效果示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 滤镜算法原理 ——马赛克 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
% 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 。

最后此篇关于Python实现PS滤镜中马赛克效果示例的文章就讲到这里了,如果你想了解更多关于Python实现PS滤镜中马赛克效果示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com