【Opencv實戰】廢片變寶,怎樣將照片調出煙雨油畫的效果?試試這個特效,超讚

2022-01-05 10:00:30

前言

小時候的舊照片,清晰度很差,沒拍好的照片模糊看不清。

現在反而發現很多模糊特效、所以說只要是特效、拍照的方式運用的好,能更加體現出照片神祕

美!

哈哈哈,所以說大家的拍照技巧也可以提升提升啦~(比如有愛拍照的物件的優先,嘻嘻)

今天就帶著大家體驗一下:如何能把高清的照片變成朦朧美呢?

我發現一個寶藏小程式程式碼,簡直是神器,比我用過的任何一個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,是不是看的更加模糊,有點兒像油畫那味兒了!

第三組隨即圖👇:

最後這組的話可以換下其他的型別的,比如動物更像油畫啦,小白狐特效化之後炸毛了一樣哈哈哈

大家還可以試試其他型別的嘛:比如風景等小編只用了人物跟動物的!

小結

嘿嘿栗子就分享到這裡啦!有沒有愛上這款模糊特效吖~趕緊自己動手試試看吧!

完整的素材等:滴滴我吖!都免費地!

往期推薦閱讀——

專案0.1  寶藏拼圖神祕上線,三種玩法刷爆朋友圈—玩家直呼太上癮了。

專案0.2 【Pygame小遊戲】Python版有迷宮嘛?原來藏在個地方呀~

專案1.6 【Pygame小遊戲】鬥地主我見多了,BUT 這款開源歡樂鬥地主,最讓人服氣~

專案1.7 【Pygame小遊戲】神還原【歡樂無窮的雙人坦克大戰】小程式遊戲,上手開玩~

還有更多更多原始碼等你來領區啦!

文章彙總——

彙總: Python文章合集 | (入門到實戰、遊戲、Turtle、案例等)