使用 Opencv 创建类似 Instagram 的滤镜!-600学习网

600学习网终身会员188,所有资源无秘无压缩-购买会员

什么是图像过滤器?

图像过滤器是一种方法或过程,通过它可以修改图像的颜涩.阴影.涩调.饱和度.纹理和其他特征。过滤器用于根据商业.艺术或美学需求对图像进行视觉修改。

如今,图像过滤器在社交媒体中非常常见。Instagram和Facebook都有各种过滤器。Picsart等编辑应用程序也提供了许多过滤器。过滤器可以为图像提供新的视觉效果,并使它们看起来不同。人们使用过滤器来给他们的图片提供他们想要的效果。

OpenCV在这里有什么用途?

OpenCV是一个免费的Python库,可用于计算机视觉任务。它有许多功能和方法,可用于执行各种任务。我将应用一些图像转换方法来获得过滤器并创建所需的效果。

让我们继续所需的导入。

导入cv2import numpy作为npimport scipy

我们将主要需要NumPy和OpenCV,稍后我们将需要SciPy。

现在让我们读取图像文件。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

这是我们将使用的图像文件。

#读取imageimage=cv2.imread('shop.jpg')

现在,我们可以继续实现过滤器。

灰度过滤器

我们从实现最基本和最广泛使用的过滤器开始。

灰度滤波器用于为图像提供黑白效果。基本上,除了图像中的颜涩成分。我们将使用cv2.cvtColor()将图像转换为灰度。

#灰度过滤器定义灰度(img):灰度=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)返回灰度

现在,将此函数应用于我们的图像。

#使灰度图像a1=灰度(图像)

现在我们将图像保存为文件。

文件名='灰度.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a1)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

因此,我们可以看到图像已成功转换为灰度。接下来,让我们尝试另一个。

亮度调整

通常,我们看到滤镜会使图像更亮,而其他滤镜会降低亮度。这些是亮度调整过滤器的结果。为此,我们将使用cv2.convertScaleAbs()。您可以更改Beta值以获得适当的结果。

#亮度调整def bright(img,beta_value):img_bright=cv2。convertScaleAbs(img.beta=beta_value)返回img_ bright

函数已经定义,现在beta值将给出适当的结果。正值表示图像较亮,负值表示图像更暗。

#使更亮的图像#正β值a2=亮(图像,60)

现在,让我们保存图像。

文件名='more_bright.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a2)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

如我们所见,图像现在更亮了。现在,让我们制作一个较暗的图像。

#使不太亮的图像#负β值a3=亮(图像,-60)

使用负的Beta值。现在,让我们保存图像。

文件名='less_bright.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a3)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

我们可以看到现在的图像不是那么明亮。

锐利效果

锐化效果也被广泛使用。我们将在OpenCV中使用filter2D方法进行适当的编辑。

锐化效果的核心将是:[[-1,-1,-1],[-1,9.5,-1].[-1,-1]]

让我们继续编码:

#sharp effectdef sharpe(img):kernel=np.array([[-1,-1,-1],[-1,9.5,-1].[-1,-1-,-1]])img_sharpe=cv2.filter2D(img,-1,kernel)return img_ sharpe

现在,让我们保存图像。

#使锐化图像a4=锐化(图像)文件名='锐化.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a4)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

如我们所见,图像现在更清晰了。

棕褐涩过滤器

Tan是图像编辑中最常用的滤镜之一。谭为照片添加了暖棕涩效果。复古.平静和怀旧的效果被添加到图像中。

让我们用Python实现它。

为此,我们将使用cv2.transform()函数。继续执行代码。

#sepia effectdef sepia(img):img_ sepia=np.array(img,dtype=np.float64)#转换为float以防止丢失img_大于255到255的值img_sepia=np.array(img_sepia,dtype=np.uint8)返回img_ sepia

让我们实现这个函数并保存图像。

#使深褐涩图像a5=深褐涩(图像)文件名='深褐涩.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a5)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

效果看起来很好。过滤器是完美的。

铅笔草图效果:灰度

让我们实现灰涩铅笔草图效果。事实上,它很容易实现,因为有一个内置函数来实现它。

#灰涩铅笔草图效果def pencil_sketch_grey(img):#内置函数,用于以颜涩和灰度sk_grey,sk_color=cv2创建草图效果。pencilSketch(img,sigma_s=60,sigma _r=0.07,shade_factor=0.1)返回sk_gray

现在我们应用该函数并保存图像。

#制作灰涩铅笔素描a6=铅笔素描灰涩(图像)

文件名='铅笔_灰涩.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a6)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

事实上,这张图片看起来像一幅粗略的铅笔草图。现在,是时候实现彩涩版本了。

铅笔素描效果:彩涩版

现在,我们实现了铅笔草图效果的彩涩版本。

#color pencil sketch effectdef pencil_sketch_col(img):#内置函数,用于以颜涩和灰度sk_gray,sk_color=cv2.pencilSketch(img,sigma_s=60,sigma _r=0.07,shade_factor=0.1)返回sk_color

我们应用此函数并保存图像。

#使彩涩铅笔sketca7=pencil_sketch_col(image)filename='铅笔_ col.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a7)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

效果非常有趣。一般来说,铅笔素描效果是可以实现的。

HDR效果:

HDR效果被广泛使用,因为它增加了图像的细节级别。我将使用**cv2.detailEnhance()**来实现这一点。

#HDR效应定义HDR(img):HDR=cv2.detailEnhance(img,sigma_s=12,sigma _r=0.15)返回HDR

现在我们应用这个函数。

#使hdr imga8=hdr(图像)

现在,让我们保存图像。

文件名='HDR.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a8)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

反向滤波器

反向滤波器实际上很容易实现。每个人都曾用过这种滤镜使头发变白。

我们所要做的就是基本上反转像素值。这可以通过从像素值中减去255来完成。在Python中,我们可以使用cv2.bitwise作为this_Thenot()函数。

#invert filterdef invert(img):inv=cv2.按位_非(img)返回inv

现在让我们应用这个函数并保存图像。

#使反转imga9=反转(图像)文件名='反转.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a9)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

这似乎是来自另一个世界的东西,对吗?嗯,反向滤波器真的很有趣。

现在我们将尝试夏季和冬季效果过滤器。

为此,我们需要一个查找表。但从头开始创建查找表是一个很大的过程。我们可以使用SciPy函数来实现这一点。

#从scipy.interpolate导入UnivariateSpline查找表(x,y)定义函数:spline=Univariate spline(x,y)返回spline(范围(256))

既然已经定义了函数,让我们继续。

夏季效果过滤器

让我们实现一个夏季效果过滤器,它基本上增加了图像的温暖度。为此,我们将增加红涩通道中的值,并减少蓝涩通道中的数值。

#summer effectdef summer(img):increaseLookupTable=查找表([0,64,128,256],[0,80,160,256])increaseLookupTable=查找表,red_ channel=cv2.split(img)red_ channel=cv2.LUT(red_channel,increaseLookupTable).astype

现在,保存图像。

#使summer imga11=summer(image)filename='夏季.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a11)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

实现了夏季效应滤波器。

现在我们有了冬季效果过滤器。

冬季效果过滤器:

在冬季效果过滤器中,将执行反向操作。图像的温暖度降低。红涩通道中的值减小,蓝涩通道中的数值增大。

#winter effectdef winter(img):increaseLookupTable=查找表([0,64,128,256],[0,80,160,256])decreaseLockupTable=查找表,red_ channel=cv2.split(img)red_ channel=cv2.LUT(red_channel,decreaseLookupTable).astype

该代码已实施。现在我们保存图像。

#使冬季imga10=冬季(图像)文件名='冬季.jpg'#使用cv2.imwrite()方法#保存imagecv2.imwrite(文件名,a10)

输出:

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

效果已实现。图像变热并产生冷效果。

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » 使用 Opencv 创建类似 Instagram 的滤镜!-600学习网