中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
鬼才把python當(dāng)成PS用,摳圖合成圖片樣樣精通!

本文約1500字,閱讀需要5分鐘

關(guān)鍵詞:Python P圖 OpenCV

如果你感覺(jué)學(xué)不會(huì)?莫慌,小編推薦大家加入群,

前面960中間410后面445,群里有志同道合的小伙伴,

互幫互助,還可以拿到許多視頻教程!

本文講述了借助Python語(yǔ)言和OpenCV工具庫(kù)完成一個(gè)簡(jiǎn)單的P圖操作的過(guò)程~

作為一名可視化工程師,如果只會(huì)使用PS,那么你一定OUT了。在專(zhuān)注各種花式P圖多年,在學(xué)習(xí)PS,AI,PR,AE,XD……無(wú)數(shù)設(shè)計(jì)軟件之后,本人終于悟到了一門(mén)獨(dú)步江湖的絕技——“代碼P圖”。

今天,我就把這門(mén)P圖界的無(wú)上秘籍,傳授給你!希望你在炫技(zuo si)的道路上越走越遠(yuǎn)。

來(lái)看一下今天的素材:守望先鋒新上線(xiàn)的英雄——艾什的正面照:

然后這是一張背景圖:

今天的任務(wù)很簡(jiǎn)單,我要對(duì)第一張圖中的人物進(jìn)行摳圖,然后貼在背景圖上。

這個(gè)操作用PS并不復(fù)雜,讓我們來(lái)看一下這一過(guò)程如何用代碼來(lái)實(shí)現(xiàn)~

素材處理

首先,導(dǎo)入一些工具包

opencv(cv2),用于圖像處理numpy,用于數(shù)據(jù)計(jì)算。matplotlib用于出圖。

import cv2

import numpy as np

import matplotlib.pyplot as plt

建立一個(gè)顯示圖片的函數(shù),便于在P圖過(guò)程中,實(shí)時(shí)查看效果

使用的是matplotlib的功能,和制作圖表的過(guò)程一致。

#建立顯示圖片的函數(shù)

def show(image):

plt.imshow(image)

plt.axis('off')

plt.show()

然后,導(dǎo)入前景圖。

因?yàn)閛pencv的圖片默認(rèn)使用BGR圖像格式,而我們通常使用的圖片是RGB(紅,綠,藍(lán)),所以,需要再轉(zhuǎn)換一下格式,否則查看時(shí)顏色會(huì)失真。

最后打印圖片規(guī)格和圖片本身

#導(dǎo)入前景圖

img=cv2.imread('img.png') #圖片導(dǎo)入

img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #轉(zhuǎn)換顏色模型

print(img.shape) #打印圖片規(guī)格

show(img) #顯示圖片

來(lái)看一下效果,高1054像素,長(zhǎng)703像素,3通道。

同樣的方法,導(dǎo)入背景圖

#導(dǎo)入背景圖

back_img = cv2.imread('back_img.jpg') #圖片導(dǎo)入

back_img = cv2.cvtColor(back_img,cv2.COLOR_BGR2RGB) #轉(zhuǎn)換顏色模型

print(back_img.shape) #打印圖片規(guī)格

show(back_img) #顯示圖片

效果如下,高1079,長(zhǎng)1920,3通道。

我們發(fā)現(xiàn)人物圖高度和背景高度差不多,且我們只要中間的人像即可,那么我們先來(lái)適當(dāng)?shù)夭眉粢幌聢D片

#裁剪圖片

img = img[0:1000,150:550] #裁剪圖片大小

show(img) #顯示圖片

通過(guò)切片,裁去了logo

再對(duì)圖片縮小10%,這樣大小最為合適

#縮放圖片

print(img.shape) #打印圖片規(guī)格

img=cv2.resize(img,None,fx=0.9,fy=0.9) #圖片縮小10%

print(img.shape) #打印圖片規(guī)格

打印一下圖片尺寸,發(fā)現(xiàn)裁剪成功

圖片在計(jì)算機(jī)中是用數(shù)字矩陣形式保存的,紅、綠、藍(lán)三個(gè)顏色通道每種色各分為256階,分別由0-255這256個(gè)數(shù)表示。比如900*360的圖片,可以理解為900行360列的像素矩陣,而每個(gè)像素又是由R,G,B三個(gè)數(shù)字確認(rèn)其顏色的。于是,我們先把圖片的行,列數(shù)記錄下來(lái),稍后可以用諸如遍歷的方法讀取每個(gè)像素,再對(duì)其進(jìn)行矩陣計(jì)算。

#拆分圖片信息

rows,cols,channels = img.shape #拆分圖片信息

摳圖:三種效果

摳圖的方法雷同PS,我們要先建立個(gè)蒙版。在開(kāi)始之前,我們先需要把圖片轉(zhuǎn)換成HSV格式,這是一種比較直觀(guān)的顏色模型,可以更好的數(shù)字化處理顏色。

#轉(zhuǎn)換格式

img_hsv = cv2.cvtColor(img,cv2.COLOR_RGB2HSV) #把圖片轉(zhuǎn)換成HSV格式,用于摳圖

show(img_hsv) #顯示圖片

看下效果:

雖然不能直視,但做法顯而易見(jiàn),只要把非藍(lán)色的部分提取出來(lái)。我們?cè)O(shè)定一個(gè)閾值,在最小閾值以下和最大閾值以上,圖像變?yōu)?,而在閾值之間的變?yōu)?55。

#摳圖

lower_blue=np.array([0,0,0]) #獲取最小閾值

upper_blue=np.array([0,255,255]) #獲取最大閾值

mask = cv2.inRange(img_hsv, lower_blue, upper_blue) #創(chuàng)建遮罩

show(mask) #顯示遮罩

然后,遮罩就這么給整了出來(lái)。

不過(guò),我們發(fā)現(xiàn),人物中間有那么多小點(diǎn)點(diǎn),我需要把它們?nèi)サ簟_@里使用形態(tài)學(xué)圖像處理的基本方法,先腐蝕后膨脹。其原理是在原圖的小區(qū)域內(nèi)取局部最小值和最大值,背后的邏輯為深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)。

通過(guò)嘗試,我發(fā)現(xiàn)還可以使用開(kāi)運(yùn)算(先腐蝕后膨脹的整合運(yùn)算)直接完成這一過(guò)程,且效果相對(duì)較好。

erode=cv2.erode(mask,None,iterations=3) #圖像腐蝕

show(erode) #顯示圖片

dilate=cv2.dilate(erode,None,iterations=1) #圖像膨脹

show(dilate) #顯示圖片

opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (8,8))) #開(kāi)運(yùn)算

show(opening) #顯示圖片

大家可以自行比較下腐蝕,腐蝕后膨脹和開(kāi)運(yùn)算的效果:

圖像合并

最后,終于到了圖像合并環(huán)節(jié)。先設(shè)定人物在背景圖中的起始位置。再遍歷遮罩中的每個(gè)像素,如果是0(代表黑色),則把人物圖像上的顏色賦值到背景圖像上。

center = [70,240] #設(shè)置前景圖開(kāi)始位置

for i in range(rows):

for j in range(cols):

if opening[i,j]==0: #代表黑色

back_img[center[0]+i,center[1]+j] =img[i,j] #賦值顏色

show(back_img) #顯示圖片

運(yùn)行完畢,顯示結(jié)果:

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
使用Python進(jìn)行圖像分割和對(duì)象計(jì)數(shù)實(shí)例
基于OpenCV的實(shí)用圖像處理操作
python進(jìn)階—OpenCV之圖像處理(一)
史上最全的OpenCV入門(mén)教程!這篇夠你學(xué)習(xí)半個(gè)月了!萬(wàn)字長(zhǎng)文入門(mén)
簡(jiǎn)單人工智能技術(shù)應(yīng)用 使用Python OpenCV進(jìn)行圖像處理
【youcans 的 OpenCV 例程200篇】164.使用 Laplace 邊緣信息改進(jìn)全局閾值處理
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服