[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~

同时推荐作者的C++图像系列知识:
[数字图像处理] 一.MFC详解显示BMP格式图片
[数字图像处理] 二.MFC单文档分割窗口显示图片
[数字图像处理] 三.MFC实现图像灰度、采样和量化功能详解
[数字图像处理] 四.MFC对话框绘制灰度直方图
[数字图像处理] 五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解
[数字图像处理] 六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解
[数字图像处理] 七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

前文参考:
[Python图像处理] 一.图像处理基础知识及OpenCV入门函数
[Python图像处理] 二.OpenCV+Numpy库读取与修改像素
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
[Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
[Python图像处理] 五.图像融合、加法运算及图像类型转换
[Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移
[Python图像处理] 七.图像阈值化处理及算法对比
[Python图像处理] 八.图像腐蚀与图像膨胀
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
[Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图
[Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽运算
[Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
[Python图像处理] 十五.图像的灰度线性变换
[Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换
[Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子
[Python图像处理] 十八.图像锐化与边缘检测之Scharr算子、Canny算子和LOG算子
[Python图像处理] 十九.图像分割之基于K-Means聚类的区域分割
[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效
[Python图像处理] 二十一.图像金字塔之图像向下取样和向上取样
[Python图像处理] 二十二.Python图像傅里叶变换原理及实现
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波

前面一篇文章我讲解了傅里叶变换、基于傅里叶变换的高通滤波和低通滤波。本文将继续补充常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现。基础性文章,希望对你有所帮助。同时,该部分知识均为杨秀璋查阅资料撰写,转载请署名CSDN+杨秀璋及原地址出处,谢谢!!

1.图像毛玻璃特效
2.图像浮雕特效
3.图像油漆特效
4.本文小结


PS:文章参考自己以前系列图像处理文章及OpenCV库函数,同时参考如下文献:
《数字图像处理》(第3版),冈萨雷斯著,阮秋琦译,电子工业出版社,2013年.
《数字图像处理学》(第3版),阮秋琦,电子工业出版社,2008年,北京.
《OpenCV3编程入门》,毛星云,冷雪飞,电子工业出版社,2015,北京.
Eastmount - [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果
有苦向瓜诉说 - 用Python来画浮雕画


一.图像毛玻璃特效

图像毛玻璃特效如图所示,左边为原始图像,右边为毛玻璃特效图像。它是用图像邻域内随机一个像素点的颜色来替代当前像素点颜色的过程,从而为图像增加一个毛玻璃模糊的特效。
PS:该图片为作者去喀纳斯拍摄,真心美!

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第1张图片

Python实现代码主要是通过双层循环遍历图像的各像素点,再用定义的随机数去替换各邻域像素点的颜色,具体代码如下所示。

Image_Processing_13_01.py

#coding:utf-8
import cv2
import numpy as np

#读取原始图像
src = cv2.imread('scenery.png')

#新建目标图像
dst = np.zeros_like(src)

#获取图像行和列
rows, cols = src.shape[:2]

#定义偏移量和随机数
offsets = 5
random_num = 0

#毛玻璃效果: 像素点邻域内随机像素点的颜色替代当前像素点的颜色
for y in range(rows - offsets):
    for x in range(cols - offsets):
        random_num = np.random.randint(0,offsets)
        dst[y,x] = src[y + random_num,x + random_num]

#显示图像
cv2.imshow('src',src)
cv2.imshow('dst',dst)

cv2.waitKey()
cv2.destroyAllWindows()

二.图像浮雕特效

图像浮雕特效是仿造浮雕艺术而衍生的处理,它将要呈现的图像突起于石头表面,根据凹凸程度不同形成三维的立体效果。Python绘制浮雕图像是通过勾画图像的轮廓,并降低周围的像素值,从而产生一张具有立体感的浮雕效果图。传统的方法是设置卷积核,再调用OpenCV的filter2D()函数实现浮雕特效。该函数主要是利用内核实现对图像的卷积运算,其函数原型如下所示:

dst = filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])

  • src表示输入图像
  • dst表示输出的边缘图,其大小和通道数与输入图像相同
  • ddepth表示目标图像所需的深度
  • kernel表示卷积核,一个单通道浮点型矩阵
  • anchor表示内核的基准点,其默认值为(-1,-1),位于中心位置
  • delta表示在储存目标图像前可选的添加到像素的值,默认值为0
  • borderType表示边框模式

核心代码如下:

kernel = np.array([[-1,0,0],[0,1,0],[0,0,0]])
output = cv2.filter2D(src, -1, kernel)

本小节将直接对各像素点进行处理,采用相邻像素相减的方法来得到图像轮廓与平面的差,类似边缘的特征,从而获得这种立体感的效果。为了增强图片的主观感受,还可以给这个差加上一个固定值,如150。实现效果如图所示。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第2张图片

Python通过双层循环遍历图像的各像素点,使用相邻像素值之差来表示当前像素值,从而得到图像的边缘特征,最后加上固定数值150得到浮雕效果,具体代码如下所示。

# -*- coding: utf-8 -*-
import cv2
import numpy as np

#读取原始图像
img = cv2.imread('scenery.png', 1)

#获取图像的高度和宽度
height, width = img.shape[:2]

#图像灰度处理
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#创建目标图像
dstImg = np.zeros((height,width,1),np.uint8)

#浮雕特效算法:newPixel = grayCurrentPixel - grayNextPixel + 150
for i in range(0,height):
    for j in range(0,width-1):
        grayCurrentPixel = int(gray[i,j])
        grayNextPixel = int(gray[i,j+1])
        newPixel = grayCurrentPixel - grayNextPixel + 150
        if newPixel > 255:
            newPixel = 255
        if newPixel < 0:
            newPixel = 0
        dstImg[i,j] = newPixel
        
#显示图像
cv2.imshow('src', img)
cv2.imshow('dst',dstImg)

#等待显示
cv2.waitKey()
cv2.destroyAllWindows()

三.图像油漆特效

图像油漆特效类似于油漆染色后的轮廓图形,它主要采用自定义卷积核和cv2.filter2D()函数实现,Python实现代码主要通过Numpy定义卷积核,再进行特效处理,卷积核如公式(13-1)所示,其中心权重为10,其余值均为-1。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第3张图片

完整代码如下所示:

# -*- coding: utf-8 -*-
import cv2
import numpy as np

#读取原始图像
src = cv2.imread('scenery.png')

#图像灰度处理
gray = cv2.cvtColor(src,cv2.COLOR_BGR2GRAY)

#自定义卷积核
kernel = np.array([[-1,-1,-1],[-1,10,-1],[-1,-1,-1]])

#图像浮雕效果
output = cv2.filter2D(gray, -1, kernel)

#显示图像
cv2.imshow('Original Image', src)
cv2.imshow('Emboss_1',output)

#等待显示
cv2.waitKey()
cv2.destroyAllWindows()

输出结果如下图所示:

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第4张图片

四.本文小结

讲到这里,作者将分享的几个特效就讲解完毕,后续将继续分享包括素描、黄昏、灯光、流光等效果,希望读者喜欢。最后补充作者五一假期的一些感受!

《这些年璋娜去过的地方》
一座城市,一道文化。一个故事,两个主角。
这些年璋娜走过的山河,陪你感受这大千世界,
留下的片片剪影和段段文字,异样的人生,精彩的生活。

图1 青海•茶卡盐湖 2017-8-30
纯洁、清澈、蓝白交织,如同一场梦境,美得恍如隔世,它就是“天空之境”茶卡盐湖。

图2 广州•小蛮腰长隆 2017-5-30
稳坐珠江夜游船,翻转长隆水世界。笑谈粤广风流人,宁负天下不负卿。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第5张图片

图3 云南•昆明丽江大理 2018-4-2
彩云之南,我心的方向。孔雀飞去,回忆悠长。玉龙雪山,闪耀着银光。秀色丽江,人在路上。彩云之南,归去的地方。往事芬芳,随风飘扬。蝴蝶泉边,歌声在流淌。泸沽湖畔,心在荡漾。

图4 西安•钟鼓楼兵马俑 2018-6-16
这里是炎帝故里和皇帝葬地,这里有十四个王朝建都于此,这里山川秀美、人文荟萃,这里让你感受中华上下五千年的文化,又何止五千年,这里就是西安。放慢脚步,品一个城市的文化。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第6张图片

图5 重庆•洪崖洞 2018-6-24
朝辞筑城下渝州,北理少年今似昨。浮生徘徊宛若梦,冷暖自知君莫愁。两位老友的结婚,让我感受了重庆文化。毕业分开之后,大家天南地北,再难聚,但很美。

图6 甘肃•敦煌莫高窟阳关 2018-9-9
在人类绚丽多姿、异彩纷呈的历史创造中,有四种文化范围最广、自成体系、光芒四射,它们是希腊文化、伊斯兰文化、印度文化和中国文化,而这四种文化曾经在一个迷人的地方交汇过,并被灿烂地表现出来,这个地方就是中国的文化圣地——敦煌。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第7张图片

图7 新疆•伊犁赛里木湖 2018-9-15
大西洋上最后的一滴眼泪,总闪烁着圣洁迷人的样子,不挂一丝,不染一尘。这就是伊犁的赛里木湖。站在空中草原拉那提,自己是那么的渺小,人生那些破事根本不值一提,热爱生命,敬畏自然。

图8 新疆•喀纳斯白哈巴禾木 2018-9-19
在新疆,有一种秋来绚烂如画的美,那里湖水清澈,水随着光影与周边的景物变换颜色;那里天空异常湛蓝,白云朵朵深情地望着山坡上的金黄,似置梦境,宛入油画。那就是神秘又美丽的喀纳斯。

图9 福建•厦门鼓浪屿 2019-2-22
这是一个自带文艺属性的地方,哪里都有自由浪漫的气息,在这里要学会随遇而安,走走停停,流水马龙,烟笼人家。

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第8张图片

这些年,我们还走过四川、湖北、广西等地,
但它们还有太多风景、文化、故事等待着去抒写,还有西藏、大兴安岭、川西。

最后用米兰昆德拉的一句话结尾“真正的生活,是你现在做的事,是你那样的生活。”更是璋娜现在得样子,晚安

[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效_第9张图片

(By:Eastmount 2019-05-5 深夜6点写于花溪 https://blog.csdn.net/Eastmount )

你可能感兴趣的:(Python图像处理,图像特效,毛玻璃特效,浮雕特效,油漆特效,MFC图像知识,数字图像处理,Python图像处理,MFC应用及图像处理,Python图像处理及图像识别)