這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站從2013年成立,先為昌江黎族等服務(wù)建站,昌江黎族等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為昌江黎族企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。首先導(dǎo)入包:
import numpy as np import cv2
讀取原圖,得到原圖的寬高信息:
img=cv2.imread('ziliao/image00.JPG',1) imInfo=img.shape height=imInfo[0] width=imInfo[1]
完成彩色圖片向灰度圖片的轉(zhuǎn)化:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) '''該函數(shù)用于顏色的轉(zhuǎn)換,第一個(gè)參數(shù)為待處理的原圖, 第二個(gè)參數(shù)表示轉(zhuǎn)換的顏色'''
本實(shí)例中將圖片分割為若干個(gè)8×8的小方塊,將0-255的灰度值分為8個(gè)等級(jí),下面定義了一個(gè)數(shù)組array1來(lái)裝載這8個(gè)等級(jí)中的像素個(gè)數(shù),然后找出每個(gè)小方塊中包含最多像素的等級(jí),如下:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) dst=np.zeros((height,width,3),np.uint8) for i in range(4,height-4): for j in range(4,width-4): array1 = np.zeros(8, np.uint8) #用于存儲(chǔ)每個(gè)灰度等級(jí)的像素個(gè)數(shù) for m in range(-4, 4): #計(jì)算8*8小方塊中的array1的值 for n in range(-4,4): p1 = int(gray[i + m, j + n] / 32) #除以32得到該點(diǎn)應(yīng)該位于第幾個(gè)灰度等級(jí) array1[p1] = array1[p1] + 1 currentMax = array1[0] l = 0 for k in range(0,8): #找到像素點(diǎn)最多的那個(gè)灰度等級(jí) if currentMax<array1[k]: currentMax = array1[k] l = k #以下方法是簡(jiǎn)化處理了,也可以按前文所說(shuō)的那樣求均值處理 for m in range(-4,4): for n in range(-4,4): if gray[i+m,j+n]>=(l*32) and gray[i+m,j+n]<=((l+1)*32): (b,g,r) = img[i+m,j+n] dst[i,j] = (b,g,r) cv2.imshow('img',img) cv2.imshow('dst',dst) cv2.waitKey(0)
左為原圖
import numpy as np import cv2 img=cv2.imread('ziliao/image00.png',1) imInfo=img.shape height=imInfo[0] width=imInfo[1] gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) dst=np.zeros((height,width,3),np.uint8) for i in range(4,height-4): for j in range(4,width-4): array1 = np.zeros(8, np.uint8) for m in range(-4, 4): for n in range(-4,4): p1 = int(gray[i + m, j + n] / 32) array1[p1] = array1[p1] + 1 currentMax = array1[0] l = 0 for k in range(0,8): if currentMax<array1[k]: currentMax = array1[k] l = k for m in range(-4,4): for n in range(-4,4): if gray[i+m,j+n]>=(l*32) and gray[i+m,j+n]<=((l+1)*32): (b,g,r) = img[i+m,j+n] dst[i,j] = (b,g,r) cv2.imshow('img',img) cv2.imshow('dst',dst) cv2.waitKey(0)
上述就是小編為大家分享的使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱:使用Opencv怎么實(shí)現(xiàn)一個(gè)圖片油畫特效-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://m.newbst.com/article10/hjggo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站排名、建站公司、網(wǎng)站策劃、標(biāo)簽優(yōu)化、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容