【Opencv实战】废片变宝,怎样将照片调出烟雨油画的效果?试试这个特效,超赞

321 阅读4分钟

前言

小时候的旧照片,清晰度很差,没拍好的照片模糊看不清。

现在反而发现很多模糊特效、所以说只要是特效、拍照的方式运用的好,能更加体现出照片神秘美!

哈哈哈,所以说大家的拍照技巧也可以提升提升啦~(比如有爱拍照的对象的优先,嘻嘻)

今天就带着大家体验一下:如何能把高清的照片变成朦胧美呢?

我发现一个宝藏小程序代码,简直是神器,比我用过的任何一个APP都好用,不信你看看下面的操作吧~

正文

今天实现的是“模糊”特效,用到的当然是咱们熟悉的cv2啦!

一、下面具体讲解下我们今天的小原理:认真听.jpg

 我们第一步就是要读取图片,读取图片的库函数有很多。比较好用的是cv2。

另外,由于图片是由矩阵表示的,所以我们还需要处理矩阵相关的库函数。这里用到的是numpy。

首先我们要定义一个和原来的图片尺寸一样的矩阵。

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

dst就是我们初始化的矩阵,这里面的每个像素点都对应原图像矩阵中的一个像素点。在之后的实现毛玻璃的for循环

中,我们将每个像素点都替换成我们计算得到的值。实现毛玻璃效果,我们做的实际上是我们在像素点周围随机选一个

像素点,用来取代当前像素点,这样处理后,就会显得图片有一些模糊。

二、环境准备

Python3、 Pycharm 、numpy、cv2 一些做图片的素材大家可以自由选择这里就不展示,等下会给大家随机找几组效

果哈!

第三方库的安装:pip  install +模块名 如安装出现问题可以直接找我私信即可哈

三、代码演示

import cv2
import numpy as np

#读取原始图像
src = cv2.imread('3.jpg')

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

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

#定义偏移量和随机数
offsets = 10
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.whit)
cv2.destroyAllWindows()

四、效果展示

第一组随机图👇:

偏移量越大,图片的模糊效果就越强,刚刚我们用到的是5的偏移量,我们现在换一个更大的偏移量。

第二组随机图👇:

这组偏移量为10,是不是看的更加模糊,有点儿像油画那味儿了!

第三组随即图👇:

最后这组的话可以换下其他的类型的,比如动物更像油画啦,小白狐特效化之后炸毛了一样哈哈哈~

大家还可以试试其他类型的嘛:比如风景等小编只用了人物跟动物的!

小结

嘿嘿栗子就分享到这里啦!有没有爱上这款模糊特效吖~赶紧自己动手试试看吧!

源码基地——

私信小编06或者点击这行蓝色字体即可免费获取哈!

🎉往期推荐阅读——

项目1.0 超级玛丽

程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】

项目1.1 扫雷

Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......

项目1.2 魂斗罗

Pygame实战:多年后“魂斗罗”像素风归来 不止是经典与情怀@全体成员

项目1.3 太空机甲游戏

Pygame实战:牛,几千行代码实现《机甲闯关冒险游戏》,太牛了(保存起来慢慢学)

🎄文章汇总——

项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在文章汇总哦!!欢迎阅读~)