一、彩铅滤镜核心代码
新建 paint_effect.py 文件
import cv2
import numpy as np
# 读取原始图像
original_image = cv2.imread('2.jpg')
#图像灰度处理
gray_image = cv2.cvtColor(original_image,cv2.COLOR_RGB2BGR)
#自定义卷积核
my_kernel = np.array([[-1,-1,-1],[-1,10,-1],[-1,-1,-1]])
#图片浮雕效果
paint_effect_img = cv2.filter2D(gray_image,-1,my_kernel)
# 处理完成,显示图像
cv2.imshow('original_image', original_image)
cv2.imshow('glass_effect_image',paint_effect_img)
cv2.waitKey()
cv2.destroyAllWindows()
代码思想:使用卷积形式对图片进行滤波操作,形成一种独特的风格。
效果如下图所示:
二、UI 界面
1.更改glass_effect.py文件
def painteffect_fun(instance):
# 读取原始图像
original_image = instance.m_image
instance.m_image = paint_effect_img
instance.updata_image()
2.在对应UI.py文件中添加action
添加 action;新增选项; 连接函数
# 创建一个action,当该action被触发时显示油漆特效处理后的图片
action_paint_img_show = QAction('&彩铅滤镜', instance)
action_paint_img_show.triggered.connect(instance.paint_effect_emit)
# 艺术风格迁移选项新增一个action:油漆滤镜
tempMenu.addAction(action_paint_img_show)
3.在主UI.py文件中添加信号发射函数
首先引入模块
from part3 import m_init_style_transfer,glass_effect,paint_effect
定义信号发射函数
def paint_effect_emit(self):
paint_effect.painteffect_fun(self)
效果如下
三、特殊发现
多次使用彩铅滤镜,色调会交替呈现冷色和暖色。