首页 » 网站建设 » phppython图像处置技巧_Python图像处理丨5种图像处理特效

phppython图像处置技巧_Python图像处理丨5种图像处理特效

访客 2024-12-17 0

扫一扫用手机浏览

文章目录 [+]

#coding:utf-8import cv2import numpy as np#读取原始图像img = cv2.imread('scenery.png')#图像灰度处理gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#高斯滤波降噪gaussian = cv2.GaussianBlur(gray, (5,5), 0) #Canny算子canny = cv2.Canny(gaussian, 50, 150)#阈值化处理ret, result = cv2.threshold(canny, 100, 255, cv2.THRESH_BINARY_INV)#显示图像cv2.imshow('src', img)cv2.imshow('result', result)cv2.waitKey()cv2.destroyAllWindows()

终极输出结果如下图所示,它将彩色图像素描处理。
原图是作者去年玄月份拍摄于喀纳斯,真的很美~

图像的素描殊效有很多种方法,本文仅供应了一种方法,紧张提取的是图像的边缘轮廓,还有很多更风雅的素描殊效方法,提取的轮廓更为清晰,如下图所示。
希望读者能自行扩展干系算法知识,并实现对应的效果。

phppython图像处置技巧_Python图像处理丨5种图像处理特效

二.图像怀旧殊效

图像怀旧殊效是指图像经历岁月的阴暗效果,如图所示,左边“src”为原始图像,右边“dst”为怀旧殊效图像。

phppython图像处置技巧_Python图像处理丨5种图像处理特效
(图片来自网络侵删)

怀旧殊效是将图像的RGB三个分量分别按照一定比例进行处理的结果,其怀旧公式如下所示:

Python实当代码紧张通过双层循环遍历图像的各像素点,再结合该公式打算各颜色通道的像素值,最终生成如图所示的效果,其完全代码如下。

#coding:utf-8import cv2import numpy as np#读取原始图像img = cv2.imread('nana.png')#获取图像行和列rows, cols = img.shape[:2]#新建目标图像dst = np.zeros((rows, cols, 3), dtype="uint8")#图像怀旧殊效for i in range(rows): for j in range(cols): B = 0.272img[i,j][2] + 0.534img[i,j][1] + 0.131img[i,j][0] G = 0.349img[i,j][2] + 0.686img[i,j][1] + 0.168img[i,j][0] R = 0.393img[i,j][2] + 0.769img[i,j][1] + 0.189img[i,j][0] if B>255: B = 255 if G>255: G = 255 if R>255: R = 255 dst[i,j] = np.uint8((B, G, R)) #显示图像cv2.imshow('src', img)cv2.imshow('dst', dst)cv2.waitKey()cv2.destroyAllWindows()三.图像光照殊效

图像光照殊效是指图像存在一个类似于灯光的光晕殊效,图像像素值环绕光照中央点呈圆形范围内的增强。
如下图所示,该图像的中央点为(192,192),光照殊效之后中央圆范围内的像素增强了200。

Python实当代码紧张是通过双层循环遍历图像的各像素点,探求图像的中央点,再通过打算当前点到光照中央的间隔(平面坐标系中两点之间的间隔),判断该间隔与图像中央圆半径的大小关系,中央圆范围内的图像灰度值增强,范围外的图像灰度值保留,并结合边界范围判断天生终极的光照效果。

#coding:utf-8import cv2import mathimport numpy as np#读取原始图像img = cv2.imread('scenery.png')#获取图像行和列rows, cols = img.shape[:2]#设置中央点centerX = rows / 2centerY = cols / 2print centerX, centerYradius = min(centerX, centerY)print radius#设置光照强度strength = 200#新建目标图像dst = np.zeros((rows, cols, 3), dtype="uint8")#图像光照殊效for i in range(rows): for j in range(cols): #打算当前点到光照中央间隔(平面坐标系中两点之间的间隔) distance = math.pow((centerY-j), 2) + math.pow((centerX-i), 2) #获取原始图像 B = img[i,j][0] G = img[i,j][1] R = img[i,j][2] if (distance < radius radius): #按照间隔大小打算增强的光照值 result = (int)(strength( 1.0 - math.sqrt(distance) / radius )) B = img[i,j][0] + result G = img[i,j][1] + result R = img[i,j][2] + result #判断边界 防止越界 B = min(255, max(0, B)) G = min(255, max(0, G)) R = min(255, max(0, R)) dst[i,j] = np.uint8((B, G, R)) else: dst[i,j] = np.uint8((B, G, R)) #显示图像cv2.imshow('src', img)cv2.imshow('dst', dst)cv2.waitKey()cv2.destroyAllWindows()四.图像流年殊效

流年是用来形容如水般流逝的光阴或年华,图像处理中特指将原图像转换为具有时期感或岁月沉淀的殊效,厥后果如图所示。

Python实当代码如下,它将原始图像的蓝色(B)通道的像素值开根号,再乘以一个权重参数,产生终极的流年效果。

#coding:utf-8import cv2import mathimport numpy as np#读取原始图像img = cv2.imread('scenery.png')#获取图像行和列rows, cols = img.shape[:2]#新建目标图像dst = np.zeros((rows, cols, 3), dtype="uint8")#图像流年殊效for i in range(rows): for j in range(cols): #B通道的数值开平方乘以参数12 B = math.sqrt(img[i,j][0]) 12 G = img[i,j][1] R = img[i,j][2] if B>255: B = 255 dst[i,j] = np.uint8((B, G, R)) #显示图像cv2.imshow('src', img)cv2.imshow('dst', dst)cv2.waitKey()cv2.destroyAllWindows()五.图像滤镜殊效

滤镜紧张是用来实现图像的各种分外效果,它在Photoshop中具有非常神奇的浸染。
滤镜常日须要同通道、图层等联合利用,才能取得最佳艺术效果。
本小节将讲述一种基于颜色查找表(Look up Table)的滤镜处理方法,它通过将每一个原始颜色进行转换之后得到新的颜色。
比如,原始图像的某像素点为赤色(R-255, G-0, B-0),进行转换之后变为绿色(R-0, G-255, B-0),之后所有是赤色的地方都会被自动转换为绿色,而颜色查找表便是将所有的颜色进行一次(矩阵)转换,很多的滤镜功能便是供应了这么一个转换的矩阵,在原始色彩的根本上进行颜色的转换。

假设现在存在一张新的滤镜颜色查找表,如图所示,它是一张512×512大小,包含各像素颜色分布的图像。
下面这张图片另存为本地,即可直接用于图像滤镜处理。

滤镜殊效实现的Python代码如下所示,它通过自定义getBRG()函数获取颜色查找表中映射的滤镜颜色,再依次循环更换各颜色。

#coding:utf-8import cv2import numpy as np#获取滤镜颜色def getBGR(img, table, i, j): #获取图像颜色 b, g, r = img[i][j] #打算标准颜色表中颜色的位置坐标 x = int(g/4 + int(b/32) 64) y = int(r/4 + int((b%32) / 4) 64) #返回滤镜颜色表中对应的颜色 return lj_map[x][y]#读取原始图像img = cv2.imread('scenery.png')lj_map = cv2.imread('table.png')#获取图像行和列rows, cols = img.shape[:2]#新建目标图像dst = np.zeros((rows, cols, 3), dtype="uint8")#循环设置滤镜颜色for i in range(rows): for j in range(cols): dst[i][j] = getBGR(img, lj_map, i, j) #显示图像cv2.imshow('src', img)cv2.imshow('dst', dst)cv2.waitKey()cv2.destroyAllWindows()

滤镜殊效的运行结果如图所示,个中左边“src”为原始风景图像,右边“dst”为滤镜处理后的图像,其颜色变得更为鲜艳,比拟度更强。

六.本文小结

本篇文章紧张讲解了图像常见的殊效处理,从处理效果图、算法事理、代码实现三个步骤进行详细讲解,涉及图像素描殊效、怀旧殊效、光照殊效、流年殊效、图像滤镜等,这些知识点将为读者从事Python图像处理干系项目实践或科学研究供应一定根本。

参考文献:

《数字图像处理》(第3版),冈萨雷斯著,阮秋琦译,电子工业出版社,2013年.《数字图像处理学》(第3版),阮秋琦,电子工业出版社,2008年,北京.《OpenCV3编程入门》,毛星云,冷雪飞,电子工业出版社,2015,北京.Eastmount - [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果利用python和opencv将图片转化为素描图-python代码解析謝灰灰在找胡蘿蔔. IOS开拓--利用lookup table为图片添加滤镜百度百科. 滤镜

点击下方,第一韶光理解华为云新鲜技能~

华为云博客_大数据博客_AI博客_云打算博客_开拓者中央-华为云

标签:

相关文章

京东APIsign生成php技巧_藏头诗生成接口

藏头诗,藏头,藏尾,七言,五言一、接口先容想写情书文采不足怎么办,藏头诗生帮助你一键天生。通过输入关键字如人名、地名、公司名等,来...

网站建设 2024-12-18 阅读0 评论0