HOME> 帮派风云> python图像处理 —— 实现图像滤镜效果

python图像处理 —— 实现图像滤镜效果

2025-11-17 13:12:09

python图像处理 —— 实现图像滤镜效果

前言

一、浮雕

二、素描

三、怀旧

四、水彩画

五、水波

六、卡通

七、流年

八、美颜

完整代码

前言

随着数字图像处理技术的不断发展,越来越多的人开始关注图像滤镜的应用。其中,使用Python的Opencv库实现图像滤镜效果成为了一种流行的技术手段。而图像滤镜是一种可以改变图像外观和色彩的技术,可以帮助我们创建独特的视觉效果。在本文中,我们将介绍如何使用Python和Opencv实现图像滤镜效果,为读者提供一个简单的入门指南。

一、浮雕

图像浮雕原理是通过对图像进行灰度变换,使得某些局部区域的像素值相对于周围像素值有一定的增加或减少,从而使得图像呈现出明显的浮雕感觉。具体来说,浮雕效果的实现可以通过以下步骤:

(1)将彩色图像转换为灰度图像。 (2)对灰度图像进行卷积操作,使用卷积核进行滤波,得到一组新的像素值。卷积核的大小可以根据需要进行调整,通常采用3x3或5x5的大小。 (3)对于每个像素,将卷积操作后得到的像素值减去该像素在原始图像中的像素值,得到浮雕值。 (4)根据浮雕值,将像素点的灰度值进行调整,使得局部区域的像素值相对于周围的像素值有一定的增加或减少。 (5)将处理后的像素值重新映射到0-255的灰度值范围内,生成浮雕效果的图像。

# ===============================图像浮雕处理===============================

img_Fudiao = np.zeros((h, w, 3), np.uint8)

for i in range(0, h):

for j in range(0, w - 2): # 减2的效果和上面一样

grayP0 = int(gray[i, j])

grayP1 = int(gray[i, j + 2]) # 取与前一个像素点相邻的点

newP = grayP0 - grayP1 + 150 # 得到差值,加一个 150 常数可以增加浮雕立体感

if newP > 255: # 新的像素值,防止像素溢出

newP = 255

if newP < 0: # 新的像素值,防止像素溢出

newP = 0

img_Fudiao[i, j] = newP

二、素描

通过滤波、边缘检测、二值化可以将将一幅RGB图像转换成素描

# ===============================图像素描处理==================================

gaussian = cv2.GaussianBlur(gray, (3, 3), 0) # 通过高斯滤波过滤噪声

# 通过canny算法提取图像轮过

canny = cv2.Canny(gaussian, 50, 140)

# 对轮廓图像进行反二进制阈值化处理

ret, img_Sumiao = cv2.threshold(canny, 50, 255, cv2.THRESH_BINARY_INV)

三、怀旧

将一幅RGB图像转为怀旧图像的基本原理是将原始图像的颜色进行调整,使其呈现出类似老照片的色调。

# ===============================图像怀旧处理===============================

img_old = np.zeros((h, w, 3), dtype=img.dtype)

# 通过对原始图像进行遍历,通过怀旧公式修改像素值,然后进行怀旧处理

for i in range(h):

for j in range(w):

B = 0.272 * img[i, j][2] + 0.534 * img[i, j][1] + 0.131 * img[i, j][0]

G = 0.349 * img[i, j][2] + 0.686 * img[i, j][1] + 0.168 * img[i, j][0]

R = 0.393 * img[i, j][2] + 0.769 * img[i, j][1] + 0.189 * img[i, j][0]

# 防止图像溢出

if B > 255:

B = 255

if G > 255:

G = 255

if R > 255:

R = 255

img_old[i, j] = [int(R), int(G), int(B)] # B\G\R三通道都设置为怀旧值

四、水彩画

cv2.stylization是OpenCV库中的一种图像风格化函数,它可以用于将图像转换为带有不同风格的艺术作品。该函数的实现基于快速风格迁移(Fast Style Transfer)技术,可以在短时间内将一张普通照片转化为梵高,毕加索或印象派等多种不同风格的艺术作品。

# ===============================图像水彩画效果处理===============================

"""

src:需要进行风格化的原始图像。

sigma_s:控制空间域滤波器的尺度,通常取值在0到200之间,数值越大则滤波器的尺度越大,图像的细节信息会被平滑处理。

sigma_r:控制像素值域滤波器的尺度,通常取值在0到1之间,数值越小则滤波器的尺度越小,图像的细节信息会被保留。

"""

img_color = cv2.stylization(img, sigma_s=60, sigma_r=0.6)

五、水波

添加水波特效的原理是通过对RGB图像进行仿射变换和图像处理,使图像呈现出波动效果。

# ===============================水波特效===============================

img_wave = np.zeros((h, w, 3), np.uint8)

wavelength = 30 #定义水波特效波长

amplitude = 20 #幅度

phase = math.pi / 4 #相位

centreX = 0.5 #水波中心点X

centreY = 0.5 #水波中心点Y

radius =

人迹罕至3大神殿 仅20%骨灰级才全去过

巫师3等级上限

最新发表 newmodule
友情链接 newmodule