摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现。
一.图像毛玻璃特效
图像毛玻璃特效如图所示,左边为原始图像,右边为毛玻璃特效图像。它是用图像邻域内随机一个像素点的颜色来替代当前像素点颜色的过程,从而为图像增加一个毛玻璃模糊的特效。
PS:该图片为作者去喀纳斯拍摄,真心美!
Python实现代码主要是通过双层循环遍历图像的各像素点,再用定义的随机数去替换各邻域像素点的颜色,具体代码如下所示。
二.图像浮雕特效
图像浮雕特效是仿造浮雕艺术而衍生的处理,它将要呈现的图像突起于石头表面,根据凹凸程度不同形成三维的立体效果。Python绘制浮雕图像是通过勾画图像的轮廓,并降低周围的像素值,从而产生一张具有立体感的浮雕效果图。传统的方法是设置卷积核,再调用OpenCV的filter2D()函数实现浮雕特效。该函数主要是利用内核实现对图像的卷积运算,其函数原型如下所示:
dst = filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])
- src表示输入图像
- dst表示输出的边缘图,其大小和通道数与输入图像相同
- ddepth表示目标图像所需的深度
- kernel表示卷积核,一个单通道浮点型矩阵
- anchor表示内核的基准点,其默认值为(-1,-1),位于中心位置
- delta表示在储存目标图像前可选的添加到像素的值,默认值为0
- borderType表示边框模式
核心代码如下:
本小节将直接对各像素点进行处理,采用相邻像素相减的方法来得到图像轮廓与平面的差,类似边缘的特征,从而获得这种立体感的效果。为了增强图片的主观感受,还可以给这个差加上一个固定值,如150。实现效果如图所示。
Python通过双层循环遍历图像的各像素点,使用相邻像素值之差来表示当前像素值,从而得到图像的边缘特征,最后加上固定数值150得到浮雕效果,具体代码如下所示。
三.图像油漆特效
图像油漆特效类似于油漆染色后的轮廓图形,它主要采用自定义卷积核和cv2.filter2D()函数实现,Python实现代码主要通过Numpy定义卷积核,再进行特效处理,卷积核如公式(13-1)所示,其中心权重为10,其余值均为-1。
完整代码如下所示:
输出结果如下图所示:
参考文献:
Original: https://www.cnblogs.com/huaweiyun/p/16827747.html
Author: 华为云开发者联盟
Title: 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/808636/
转载文章受原作者版权保护。转载请注明原作者出处!